v, r_PMASK
        mflr r_FLD  // LrFLD

//Reserve enough space to decompress the folded code onto r_FLD.
        lwz r0,   sz_pack2 - f_exp(r_exp)
        la r_elfa,sz_pack2 - f_exp(r_exp)
          li a4,-1
        lwz r_szuf, sz_unc + LBINFO - LrFLD(r_FLD)  // sz_unc of fold
          li a3,MAP_PRIVATE|MAP_ANONYMOUS
        sub r_elfa,r_elfa,r0  // r_elfa= &Elf64_Ehdr of stub
          li a0,0  // kernel chooses addr
        mr a1,r_szuf  // length needed
        mr r_LENU,a1
        call mmapRW0  // fills in a5, a2
        mr r_ADRU,a0

        lwz r_obinf,      LOBINFO - LrFLD(r_FLD)  // O_BINFO
// Decompress folded code
        mtctr r_exp
        lbz meth,b_method + LBINFO - LrFLD(r_FLD)
        std r_szuf,SZ_FRAME+31*NBPW(sp)  // lzma uses for EOF
        la ldst,   SZ_FRAME+31*NBPW(sp)  // &slot on stack
        mr dst,r_ADRU  // dst for unfolding
        lwz lsrc,sz_cpr  + LBINFO - LrFLD(r_FLD)
        la src,sz_b_info +  LBINFO - LrFLD(r_FLD)  // old folded code
        bctrl  // decompress it

// Generate code to compute PAGE_MASK.
        lwz r0,0(r_ADRU)  // "li r3,PAGE_MASK>>9"
        srdi a0,r_PMASK,9
        insrdi r0,a0,16,48  // replace the immediate constant
        stw r0,0(r_ADRU)  // get_page_mask: li r3,PAGE_MASK>>9

// PROT_EXEC
        li a2,PROT_EXEC|PROT_READ
        mr a1,r_LENU  // length
        mr a0,r_ADRU  // base
        li r0,__NR_mprotect; sc

// Use the unfolded code
          addi r0,r_ADRU,4*4  // skip get_page_mask()
        lwz r_LENX, sz_pack2 - f_exp(r_exp)
          mtctr r0
        add r_ADRX,r_elfa,r_obinf  // compressed data
        bctr

mmapRW0:
        li a5,0  // offset
mmapRW:
        li a2,PROT_READ|PROT_WRITE
mmap:
        li r0,__NR_mmap; sc; bns 0f; teq r0,r0; 0:  // bad mmap
        ret

zfind:
        ld r0,0(a0); addi a0,a0,NBPW
        cmpdi cr7,r0,0; bne+ cr7,zfind
        ret

main:
////    teq r0,r0  // debugging
        stdu r1,-(SZ_FRAME + 32*NBPW)(sp)  // FR_00  allocate space (keeping 0 mod 16), save r1
//      stmd r2,SZ_FRAME+(-1+


        #         X_train = np.concatenate([ X_train, new_features ], 0)
        #         y_train = np.concatenate([ y_train, np.array(scores)[ :, None ] ], 0)
        #     #
        #     # print("Current iteration {}'s best score: {}".format(iteration, - best_score * std_y_train - mean_y_train))
        #     if best_arc is not None: # and iteration == 10:
        #         print("Best architecture: ", best_arc)
        #         with open(save_dir + 'best_arc_scores.txt', 'a') as score_file:
        #             score_file.write(best_arc + ', {:.4f}\n'.format(-best_score * std_y_train - mean_y_train))
        #         if data_type == 'ENAS':
        #             row = [int(x) for x in best_arc.split()]
        #             g_best, _ = decode_ENAS_to_igraph(flat_ENAS_to_nested(row, max_n-2))
        #         elif data_type == 'BN':
        #             row = adjstr_to_BN(best_arc)
        #             g_best, _ = decode_BN_to_igraph(row)
        #         plot_DAG(g_best, save_dir, 'best_arc_iter_{}'.format(iteration), data_type=data_type, pdf=True)
        #
        iteration += 10
        # print(iteration)

# pdb.set_trace()


, visitor: V) -> Result<V::Value>
        where
            V: de::Visitor<'de>,
        {
            self.input
                .as_number()
                .ok_or_else(|| invalid_value(self.input, "a number"))
                .and_then(|n| visit_number(n, visitor))
        }
    };
}

impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> {
    type Error = Error;

    fn deserialize_any<V>(self, visitor: V) -> Result<V::Value>
    where
        V: Visitor<'de>,
    {
        match self.input {
            Value::Nil => visitor.visit_unit(),
            Value::Null => visitor.visit_seq(ListAccess::empty()),
            Value::Bool(b) => visitor.visit_bool(*b),
            Value::Cons(cell) => visitor.visit_seq(ConsAccess::new(cell)),
            Value::Keyword(_) => Err(invalid_value(self.input, "rust-compatible value")),
            Value::Symbol(_) => Err(invalid_value(self.input, "rust-compatible value")),
            Value::Number(n) => visit_number(n, visitor),
            Value::Char(c) => visitor.visit_char(*c),
            Value::String(s) => visitor.visit_borrowed_str(s),
            Value::Vector(elts) => visitor.visit_seq(VecAccess::new(elts)),
            Value::Bytes(bytes) => visitor.visit_borrowed_bytes(bytes),
        }
    }

    fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value>
    where
        V: de::Visitor<'de>,
    {
        match self.input {
            Value::Bool(b) => visitor.visit_bool(*b),
            _ => Err(invalid_value(self.input, "boolean")),
        }
    }

    deserialize_prim_number!(deserialize_i8);
    deserialize_prim_number!(deserialize_i16);
    deserialize_prim_number!(deserialize_i32);
    deserialize_prim_number!(deserialize_i64);
    deserialize_prim_number!(deserialize_u8);
    deserialize_prim_number!(deserialize_u16);
    deserialize_prim_number!(deserialize_u32);
    deserialize_prim_number!(deserialize_u64);
    deserialize_prim_number!(deserialize_f32);
    deserialize_prim_number!(deserialize_f64);

    fn deserialize_char<V>(self, visitor: V) -> Result<V::Value>
    where
        V: de::Visitor<'de>,
    {
        match self.input {
            Value::Char(c) => visitor.visit_char(*c),
            _ => Err(invalid_value(self.input, "char")),
        }
    }

    fn deserialize_str<V>(self, visitor: V) -> Result<V::Value>
    where
        V: de::Visitor<'de>,
    {
        self.input
            .as_str()
            .ok_or_else(|| invalid_value(self.input, "a string"))
            .and_then(|s| visitor.visit_borrowed_str(s))
    }

    fn deserialize_string<V>(self, visitor: V) -> Result<V::Value>
    where
        V: de::Visitor<'de>,
    {
        self.deserialize_str(visitor)
    }

    fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value>
    where
        V: de::Visitor<'de>,
    {
        match self.input {
            Value::Bytes(bytes) => visitor.visit_borrowed_bytes(bytes),
            _ => Err(invalid_value(self.input, "byte vector")),
        }
    }

    fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value>
    wh


s) {
    super(props);
    this.deleteTweet = this.deleteTweet.bind(this);
  }

  componentDidMount() {
    this.subscription = this.props.subscribeToNewTweets(variables);
  }

  componentWillUnmount() {
    this.subscription(); // NOTE removes the subscription
  }

  deleteTweet(tweet) {
    // eslint-disable-next-line no-alert
    if (window.confirm('Are you sure you want to delete this tweet?')) {
      this.props.deleteTweet(tweet.tweet_id).then(() => {
        setTimeout(() => {
          this.props.data.refetch();
        }, 1000); // give the backend a second to fully remove record
      });
    }
  }

  render() {
    const { data } = this.props;
    const { loading, error, meInfo, networkStatus } = data;
    const isRefetching = networkStatus === 4;

    if (loading && !isRefetching) {
      return (
        <Container>

Loading ...

        </Container>
      );
    }
    if (error) {
      return (
        <Container>

{error.message}

        </Container>
      );
    }

    return (
      <Container>
        {meInfo.tweets.items.map((item, index) => (
          <Tweet key={index}>
            <button onClick={() => this.deleteTweet(item)}>Delete</button>
            <ProfileIcon>{meInfo.handle[0]}</ProfileIcon>
            {item.tweet}
          </Tweet>
        ))}
      </Container>
    );
  }
}

MeTweetsComponent.propTypes = {
  data: propType(MeTweetsQuery).isRequired,
  deleteTweet: PropTypes.func.isRequired,
  subscribeToNewTweets: PropTypes.func.isRequired,
};

const tweetsQuery = graphql(MeTweetsQuery, {
  options: () => ({
    variables,
    fetchPolicy: 'cache-and-network',
  }),
  props: props => ({
    ...props,
    subscribeToNewTweets: params =>
      props.data.subscribeToMore({
        document: AddTweetSubscription,
        variables: params,
        // TODO BUG: need to filter tweets based on more fine grained / unique value if possible
        updateQuery: (
          prev,
          {
            subscriptionData: {
              data: { addTweet },
            },
          }
        ) => {
          const tweetAlreadyExists = prev.meInfo.tweets.items.find(
            item => item.tweet === addTweet.tweet
          );
          if (tweetAlreadyExists) {
            return { ...prev };
          }
          return {
            ...prev,
            meInfo: {
              ...prev.meInfo,
              tweets: {
                items: [addTweet, ...prev.meInfo.tweets.items],
              },
            },
          };
        },
      }),
  }),
});

const deleteMutation = graphql(DeleteTweetMutation, {
  props: ({ mutate }) => ({
    deleteTweet: tweetId =>
      mutate({
        variables: {
          tweet_id: tweetId,
        },
        optimisticResponse: () => ({
          deleteTweet: {
            tweet_id: tweetId,
            __typename: 'Tweet',
          },
        }),
      }),
  }),
});

export default compose(
  tweetsQuery,
  deleteMutation
)(MeTweetsComponent);
'use strict';

/*
NOTE: this plugin is used to add all the differnet provider related plugins at once.
This way only one plugin needs to be added to the service in order to get access to the


.space 0x4

	.global ov13_02241AD4
ov13_02241AD4: ; 0x02241AD4
	.space 0x4

	.global ov13_02241AD8
ov13_02241AD8: ; 0x02241AD8
	.space 0x4

	.global ov13_02241ADC
ov13_02241ADC: ; 0x02241ADC
	.space 0x4

	.global ov13_02241AE0
ov13_02241AE0: ; 0x02241AE0
	.space 0x4

	.global ov13_02241AE4
ov13_02241AE4: ; 0x02241AE4
	.space 0x4

	.global ov13_02241AE8
ov13_02241AE8: ; 0x02241AE8
	.space 0x4

	.global ov13_02241AEC
ov13_02241AEC: ; 0x02241AEC
	.space 0x4

	.global ov13_02241AF0
ov13_02241AF0: ; 0x02241AF0
	.space 0x4

	.global ov13_02241AF4
ov13_02241AF4: ; 0x02241AF4
	.space 0x4

	.global ov13_02241AF8
ov13_02241AF8: ; 0x02241AF8
	.space 0x4

	.global ov13_02241AFC
ov13_02241AFC: ; 0x02241AFC
	.space 0x4

	.global ov13_02241B00
ov13_02241B00: ; 0x02241B00
	.space 0x4

	.global ov13_02241B04
ov13_02241B04: ; 0x02241B04
	.space 0x4

	.global ov13_02241B08
ov13_02241B08: ; 0x02241B08
	.space 0x4

	.global ov13_02241B0C
ov13_02241B0C: ; 0x02241B0C
	.space 0x4

	.global ov13_02241B10
ov13_02241B10: ; 0x02241B10
	.space 0x4

	.global ov13_02241B14
ov13_02241B14: ; 0x02241B14
	.space 0x4

	.global ov13_02241B18
ov13_02241B18: ; 0x02241B18
	.space 0x4

	.global ov13_02241B1C
ov13_02241B1C: ; 0x02241B1C
	.space 0x4

	.global ov13_02241B20
ov13_02241B20: ; 0x02241B20
	.space 0x4

	.global ov13_02241B24
ov13_02241B24: ; 0x02241B24
	.space 0x4

	.global ov13_02241B28
ov13_02241B28: ; 0x02241B28
	.space 0x4

	.global ov13_02241B2C
ov13_02241B


h.value); i++) {
    size_t expected_value = i;
    EXPECT_EQ(expected_value, hash.value[i]) << "At byte " << i;
  }
}

TEST(type_hash, parse_bad_prefix) {
  const std::string test_value =
    "RRRR01_00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff";
  rosidl_type_hash_t hash = rosidl_get_zero_initialized_type_hash();
  EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, rosidl_parse_type_hash_string(test_value.c_str(), &hash));
  rcutils_reset_error();
}

TEST(type_hash, parse_no_version) {
  const std::string test_value =
    "RIHS_00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff";
  rosidl_type_hash_t hash = rosidl_get_zero_initialized_type_hash();
  EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, rosidl_parse_type_hash_string(test_value.c_str(), &hash));
  rcutils_reset_error();
}

TEST(type_hash, parse_too_short) {
  const std::string test_value =
    "RIHS01_00112233445566778899aabbccddeeff00112233445566778899aabbccddee";
  rosidl_type_hash_t hash = rosidl_get_zero_initialized_type_hash();
  EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, rosidl_parse_type_hash_string(test_value.c_str(), &hash));
  rcutils_reset_error();
}

TEST(type_hash, parse_too_long) {
  const std::string test_value =
    "RIHS01_00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00";
  rosidl_type_hash_t hash = rosidl_get_zero_initialized_type_hash();
  EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, rosidl_parse_type_hash_string(test_value.c_str(), &hash));
  rcutils_reset_error();
}

TEST(type_hash, parse_bad_version) {
  const std::string test_value =
    "RIHS02_00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff";
  rosidl_type_hash_t hash = rosidl_get_zero_initialized_type_hash();
  EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, rosidl_parse_type_hash_string(test_value.c_str(), &hash));
  EXPECT_EQ(hash.version, 2);
  rcutils_reset_error();
}

TEST(type_hash, parse_bad_value) {
  const std::string test_value =
    "RIHS01_00112233445566778899aabbccddgeff00112233445566778899aabbccddeeff";
  rosidl_type_hash_t hash = rosidl_get_zero_initialized_type_hash();
  EXPECT_EQ(RCUTILS_RET_INVALID_ARGUMENT, rosidl_parse_type_hash_string(test_value.c_str(), &hash));
  EXPECT_EQ(hash.version, 1);
  rcutils_reset_error();
}
// Copyright 2016 Open Source Robotics Foundation, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed


- %c\n"),
							argv[0], c);
#endif
					}
					optopt = c;
					if (optstring[0] == ':')
						c = ':';
					else
						c = '?';
				}
				else
					/* We already incremented `optind' once;
					increment it again when taking next ARGV-elt as argument.  */
					optarg = argv[optind++];
				nextchar = NULL;
			}
		}
		return c;
	}
}

int
getopt(argc, argv, optstring)
int argc;
char* const* argv;
const char* optstring;
{
	return _getopt_internal(argc, argv, optstring,
		(const struct option*)0,
		(int*)0,
		0);
}

int
getopt_long(int argc, char* const* argv, const char* options,
	const struct option* long_options, int* opt_index)
{
	return _getopt_internal(argc, argv, options, long_options, opt_index, 0, 0);
}

int
getopt_long_only(int argc, char* const* argv, const char* options,
	const struct option* long_options, int* opt_index)
{
	return _getopt_internal(argc, argv, options, long_options, opt_index, 1, 0);
}

#endif	/* Not ELIDE_CODE.  */

#ifdef TEST

/* Compile with -DTEST to make an executable for use in testing
the above definition of `getopt'.  */

int
main(argc, argv)
int argc;
char** argv;
{
	int c;
	int digit_optind = 0;

	while (1)
	{
		int this_option_optind = optind ? optind : 1;

		c = getopt(argc, argv, "abc:d:0123456789");
		if (c == -1)
			break;

		switch (c)
		{
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
			if (digit_optind != 0 && digit_optind != this_option_optind)
				printf("digits occur in two different argv-elements.\n");
			digit_optind = this_option_optind;
			printf("option %c\n", c);
			break;

		case 'a':
			printf("option a\n");
			break;

		case 'b':
			printf("option b\n");
			break;

		case 'c':
			printf("option c with value `%s'\n", optarg);
			break;

		case '?':
			break;

		default:
			printf("?? getopt returned character code 0%o ??\n", c);
		}
	}

	if (optind < argc)
	{
		printf("non-option ARGV-elements: ");
		while (optind < argc)
			printf("%s ", argv[optind++]);
		printf("\n");
	}

	exit(0);
}

#endif /* TEST */


#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <Eina.h>

#include "Embryo.h"
#include "embryo_private.h"

#define STRSET(ep, par, str) {                           \
     Embryo_Cell *___cptr;                               \
     if ((___cptr = embryo_data_address_get(ep, par))) { \
          embryo_data_string_set(ep, str, ___cptr);      \
       } }

/* exported args api */

static Embryo_Cell
_embryo_args_numargs(Embryo_Program *ep, Embryo_Cell *params EINA_UNUSED)
{
   Embryo_Header *hdr;
   unsigned char *data;
   Embryo_Cell bytes;

   hdr = (Embryo_Header *)ep->base;
   data = ep->base + (int)hdr->dat;
   bytes = *(Embryo_Cell *)(data + (int)ep->frm +
                            (2 * sizeof(Embryo_Cell)));
   return bytes / sizeof(Embryo_Cell);
}

static Embryo_Cell
_embryo_args_getarg(Embryo_Program *ep, Embryo_Cell *params)
{
   Embryo_Header *hdr;
   unsigned char *data;
   Embryo_Cell val;

   if (params[0] != (2 * sizeof(Embryo_Cell))) return 0;
   hdr = (Embryo_Header *)ep->base;
   data = ep->base + (int)hdr->dat;
   val = *(Embryo_Cell *)(data + (int)ep->frm +
                          (((int)params[1] + 3) * sizeof(Embryo_Cell)));
   val += params[2] * sizeof(Embryo_Cell);
   val = *(Embryo_Cell *)(data + (int)val);
   return val;
}

static Embryo_Cell
_embryo_args_setarg(Embryo_Program *ep, Embryo_Cell *params)
{
   Embryo_Header *hdr;
   unsigned char *data;
   Embryo_Cell val;

   if (params[0] != (3 * sizeof(Embryo_Cell))) return 0;
   hdr = (Embryo_Header *)ep->base;
   data = ep->base + (int)hdr->dat;
   val = *(Embryo_Cell *)(data + (int)ep->frm +
                          (((int)params[1] + 3) * sizeof(Embryo_Cell)));
   val += params[2] * sizeof(Embryo_Cell);
   if ((val < 0) || ((val >= ep->hea) && (val < ep->stk))) return 0;
   *(Embryo_Cell *)(data + (int)val) = params[3];
   return 1;
}

static Embryo_Cell
_embryo_args_getsarg(Embryo_Program *ep, Embryo_Cell *params)
{
   Embryo_Header *hdr;
   unsigned char *data;
   Embryo_Cell base_cell;
   char *s;
   int i = 0;

   /* params[1] = arg_no */
   /* params[2] = buf */
   /* params[3] = buflen */
   if (params[0] != (3 * sizeof(Embryo_Cell))) return 0;
   if (params[3] <= 0) return 0;  /* buflen must be > 0 */
   hdr = (Embryo_Header *)ep->base;
   data = ep->base + (int)hdr->dat;
   base_cell = *(Embryo_Cell *)(data + (int)ep->frm +
                                (((int)params[1] + 3) * sizeof(Embryo_Cell)));

   s = alloca(params[3]);

   while (i < params[3])
     {
        int offset = base_cell + (i * sizeof(Embryo_Cell));

        s[i] = *(Embryo_Cell *)(data + offset);
        if (!s[i++]) break;
     }

   s[i - 1] = 0;
   STRSET(ep, params[2], s);

   return i - 1; /* characters written minus terminator */
}

/* functions used by the rest of embryo */

void
_embryo_args_init(Embryo_Program *ep)
{
   embryo_program_native_call_add(ep, "numargs", _embryo_args_numargs);
   embryo_program_native_call_add(ep, "getarg", _embryo_args_getarg);
   embryo_program_native_call_add(ep, "setarg", _embryo_args_setarg);
   embryo_program_native_call_add(ep, "getfarg", _embryo_args_getarg);
   embryo_program_native_call_add(ep, "setfarg", _embryo_args_setarg);
   embryo_program_native_call_add(ep, "getsarg", _embryo_args_getsarg);
}


7]	= List(4), -- Meteor Strike (Infernal)
		[22703]		= List(4), -- Infernal Awakening (Infernal CD)
		[30283]		= List(3), -- Shadowfury
		[89766]		= List(4), -- Axe Toss
		[233582]	= List(1), -- Entrenched in Flame
		[130616]	= List(4), -- Fear Standstill (CC)
	-- Warrior
		[5246]		= List(4), -- Intimidating Shout
		[132169]	= List(4), -- Storm Bolt
		[132168]	= List(4), -- Shockwave
		[199085]	= List(4), -- Warpath
		[199042]	= List(1), -- Thunderstruck
		[236077]	= List(2), -- Disarm
		[105771]	= List(2), -- Charge
		[316593]	= List(4), -- Intimidating Shout Standstill Target (CC)
		[316595]	= List(4), -- Intimidating Shout Standstill Others (CC)
		[385954]	= List(4), -- Shield Charge (Stun)
	-- Racial
		[20549]		= List(4), -- War Stomp
		[107079]	= List(4), -- Quaking Palm
	-- Uncategorized
		[389831]	= List(4), -- Snowdrift (Stun)
	},
}

G.unitframe.aurafilters.TurtleBuffs = {
	type = 'Whitelist',
	desc = L["Immunity buffs like Bubble and Ice Block, but also most major defensive class cooldowns."],
	spells = {
	-- Evoker
		[378464]	= List(), -- Nullifying Shroud (PvP)
		[363916]	= List(), -- Obsidian Scales
		[374348]	= List(), -- Renewing Blaze
		[357170]	= List(), -- Time Dilation
	-- Death Knight
		[48707]		= List(), -- Anti-Magic Shell
		[49039]		= List(), -- Lichborne
		[81256]		= List(), -- Dancing Rune Weapon
		[55233]		= List(), -- Vampiric Blood
		[193320]	= List(), -- Umbilicus Eternus
		[219809]	= List(), -- Tombstone
		[48792]		= List(), -- Icebound Fortitude
		[207319]	= List(), -- Corpse Shield
		[194844]	= List(), -- BoneStorm
		[145629]	= List(), -- Anti-Magic Zone
		[194679]	= List(), -- Rune Tap
	-- Demon Hunter
		[207811]	= List(), -- Nether Bond (DH)
		[207810]	= List(), -- Nether Bond (Target)
		[187827]	= List(), -- Metamorphosis
		[263648]	= List(), -- Soul Barrier
		[209426]	= List(), -- Darkness
		[196555]	= List(), -- Netherwalk
		[212800]	= List(), -- Blur
		[188499]	= List(), -- Blade Dance
		[203819]	= List(), -- Demon Spikes
	-- Druid
		[102342]	= List(), -- Ironbark
		[61336]		= List(), -- Survival Instincts
		[210655]	= List(), -- Protection of Ashamane
		[22812]		= List(), -- Barkskin
		[200851]	= List(), -- Rage of the Sleeper
		[234081]	= List(), -- Celestial Guardian
		[202043]	= List(), -- Protector of the Pack 1
		[201940]	= List(), -- Protector of the Pack 2
		[201939]	= List(), -- Protector of the Pack 3
		[192081]	= List(), -- Ironfur
		[50334]		= List(), -- Berserk (Guardian)
	-- Hunter
		[186265]	= List(), -- Aspect of the Turtle


["flags"] = "0"
defs["igVSliderScalar"][1]["defaults"]["format"] = "NULL"
defs["igVSliderScalar"][1]["funcname"] = "VSliderScalar"
defs["igVSliderScalar"][1]["location"] = "imgui:570"
defs["igVSliderScalar"][1]["namespace"] = "ImGui"
defs["igVSliderScalar"][1]["ov_cimguiname"] = "igVSliderScalar"
defs["igVSliderScalar"][1]["ret"] = "bool"
defs["igVSliderScalar"][1]["signature"] = "(const char*,const ImVec2,ImGuiDataType,void*,const void*,const void*,const char*,ImGuiSliderFlags)"
defs["igVSliderScalar"][1]["stname"] = ""
defs["igVSliderScalar"]["(const char*,const ImVec2,ImGuiDataType,void*,const void*,const void*,const char*,ImGuiSliderFlags)"] = defs["igVSliderScalar"][1]
defs["igValue"] = {}
defs["igValue"][1] = {}
defs["igValue"][1]["args"] = "(const char* prefix,bool b)"
defs["igValue"][1]["argsT"] = {}
defs["igValue"][1]["argsT"][1] = {}
defs["igValue"][1]["argsT"][1]["name"] = "prefix"
defs["igValue"][1]["argsT"][1]["type"] = "const char*"
defs["igValue"][1]["argsT"][2] = {}
defs["igValue"][1]["argsT"][2]["name"] = "b"
defs["igValue"][1]["argsT"][2]["type"] = "bool"
defs["igValue"][1]["argsoriginal"] = "(const char* prefix,bool b)"
defs["igValue"][1]["call_args"] = "(prefix,b)"
defs["igValue"][1]["cimguiname"] = "igValue"
defs["igValue"][1]["defaults"] = {}
defs["igValue"][1]["funcname"] = "Value"
defs["igValue"][1]["location"] = "imgui:646"
defs["igValue"][1]["namespace"] = "ImGui"
defs["igValue"][1]["ov_cimguiname"] = "igValue_Bool"
defs["igValue"][1]["ret"] = "void"
defs["igValue"][1]["signature"] = "(const char*,bool)"
defs["igValue"][1]["stname"] = ""
defs["igValue"][2] = {}
defs["igValue"][2]["args"] = "(const char* prefix,int v)"
defs["igValue"][2]["argsT"] = {}
defs["igValue"][2]["argsT"][1] = {}
defs["igValue"][2]["argsT"][1]["name"] = "prefix"
defs["igValue"][2]["argsT"][1]["type"] = "const char*"
defs["igValue"][2]["argsT"][2] = {}
defs["igValue"][2]["argsT"][2]["name"] = "v"
defs["igValue"][2]["argsT"][2]["type"] = "int"
defs["igValue"][2]["argsoriginal"] = "(const char* prefix,int v)"
defs["igValue"][2]["call_args"] = "(prefix,v)"
defs["igValue"][2]["cimguiname"] = "igValue"
defs["igValue"][2]["defaults"] = {}
defs["igValue"][2]["funcname"] = "Value"
defs["igValue"][2]["location"] = "imgui:647"


DDR);
        set(SUB_FLOAT_2ADDR);
        set(MUL_FLOAT_2ADDR);
        set(DIV_FLOAT_2ADDR);
        set(REM_FLOAT_2ADDR);
        set(ADD_DOUBLE_2ADDR);
        set(SUB_DOUBLE_2ADDR);
        set(MUL_DOUBLE_2ADDR);
        set(DIV_DOUBLE_2ADDR);
        set(REM_DOUBLE_2ADDR);
        set(ADD_INT_LIT16);
        set(RSUB_INT);
        set(MUL_INT_LIT16);
        set(DIV_INT_LIT16);
        set(REM_INT_LIT16);
        set(AND_INT_LIT16);
        set(OR_INT_LIT16);
        set(XOR_INT_LIT16);
        set(ADD_INT_LIT8);
        set(RSUB_INT_LIT8);
        set(MUL_INT_LIT8);
        set(DIV_INT_LIT8);
        set(REM_INT_LIT8);
        set(AND_INT_LIT8);
        set(OR_INT_LIT8);
        set(XOR_INT_LIT8);
        set(SHL_INT_LIT8);
        set(SHR_INT_LIT8);
        set(USHR_INT_LIT8);
        // END(opcode-info-init)
    }

    /**
     * This class is uninstantiable.
     */
    private OpcodeInfo() {
        // This space intentionally left blank.
    }

    /**
     * Gets the {@link Info} for the given opcode value.
     *
     * @param opcode {@code Opcodes.MIN_VALUE..Opcodes.MAX_VALUE;} the
     * opcode value
     * @return non-null; the associated opcode information instance
     */
    public static Info get(int opcode) {
        int idx = opcode - Opcodes.MIN_VALUE;

        try {
            Info result = INFO[idx];
            if (result != null) {
                return result;
            }
        } catch (ArrayIndexOutOfBoundsException ex) {
            // Fall through.
        }

        throw new IllegalArgumentException("bogus opcode: "
                + Hex.u2or4(opcode));
    }

    /**
     * Gets the name of the given opcode.
     */
    public static String getName(int opcode) {
        return get(opcode).getName();
    }

    /**
     * Gets the format (an {@link InstructionCodec}) for the given opcode
     * value.
     */
    public static InstructionCodec getFormat(int opcode) {
        return get(opcode).getFormat();
    }

    /**
     * Gets the {@link IndexType} for the given opcode value.
     */
    public static IndexType getIndexType(int opcode) {
        return get(opcode).getIndexType();
    }

    /**
     * Puts the given opcode into the table of all ops.
     *
     * @param opcode non-null; the opcode
     */
    private static void set(Info opcode) {
        int idx = opcode.getOpcode() - Opcodes.MIN_VALUE;
        INFO[idx] = opcode;
    }

    /**
     * Information about an opcode.
     */
    public static class Info {
        private final int opcode;
        private final String name;
        private final InstructionCodec format;
        private final IndexType indexType;

        public Info(int opcode, String name, InstructionCodec format,
                IndexType indexType) {
            this.opcode = opcode;
            this.name = name


 insertTextItem(int beforeIndex, String itemText) {
    return _root.insertTextItem(beforeIndex, itemText);
  }

  bool isAnimationEnabled() {
    return _isAnimationEnabled;
  }

  Iterator<Widget> iterator() {
    List<Widget> widgets = new List<Widget>.from(_childWidgets.keys);
    return WidgetIterators.createWidgetIterator(this, widgets);
  }

//  @SuppressWarnings("fallthrough")
  void onBrowserEvent(dart_html.Event event) {
    int eventType = Dom.eventGetType(event);

    switch (eventType) {
      case IEvent.ONKEYDOWN:
        // If nothing's selected, select the first item.
        if (_curSelection == null) {
          if (_root.getChildCount() > 0) {
            _onSelection(_root.getChild(0), true, true);
          }
          super.onBrowserEvent(event);
          return;
        }
        break;
        // Intentional fallthrough.
      case IEvent.ONKEYPRESS:
      case IEvent.ONKEYUP:
        dart_html.KeyboardEvent kEvent = event as dart_html.KeyboardEvent;
        // Issue 1890: Do not block history navigation via alt+left/right

        if (kEvent.altKey || kEvent.metaKey) {
          super.onBrowserEvent(event);
          return;
        }
        break;
    }

    switch (eventType) {
      case IEvent.ONCLICK:
        dart_html.Element e = event.target as dart_html.Element;
        if (shouldTreeDelegateFocusToElement(e)) {
          // The click event should have given focus to this element already.
          // Avoid moving focus back up to the tree (so that focusable widgets
          // attached to TreeItems can receive keyboard events).
        } else if ((_curSelection != null) && Dom.isOrHasChild(_curSelection.getContentElem(), e)) {
          focus = true;
        }
        break;

      case IEvent.ONMOUSEDOWN:
        // Currently, the way we're using image bundles causes extraneous events
        // to be sunk on individual items' open/close images. This leads to an
        // extra event reaching the Tree, which we will ignore here.
        // Also, ignore middle and right clicks here.
        dart_html.MouseEvent mEvent = event as dart_html.MouseEvent;
        if (mEvent.currentTarget == getElement() && mEvent.button == IEvent.BUTTON_LEFT) {
          _elementClicked(event.target as dart_html.Element);
        }
        break;
      case IEvent.ONKEYDOWN:
        _keyboardNavigation(event);
        _lastWasKeyDown = true;
        break;

      case IEvent.ONKEYPRESS:
        if (!_lastWasKeyDown) {
          _keyboardNavigation(event);
        }
        _lastWasKeyDown = false;
        break;

      case IEvent.ONKEYUP:
        dart_html.KeyboardEvent kEvent = event as dart_html.KeyboardEvent;
        if (kEvent.keyCode == KeyCodes.KEY_TAB) {
          List<dart_html.Element> chain = new List<dart_html.Element>();
          _collectElementChain(chain, getElement(), event.target);
          TreeItem item = _findItemByChain(chain, 0, _root);
          if (item != getSelectedItem()) {
            setSelectedItem(item, true);
          }
        }
        _lastWasKeyDown = false;
        break;
    }

    switch (eventType) {
      case IEvent.ONKEYDOWN:
      case IEvent.ONKEYUP:
        dart_html.KeyboardEvent kEvent = event as dart_html.KeyboardEvent;
        if (isArrowKey(kEvent.keyCode)) {
//          event.cancelBubble = true;
          event.preventDefault();
          return;


    let mut v = Visitor { seen_scan: false };
    p.accept(&mut v).unwrap();
    return v.seen_scan;
}

pub fn plan_cross_join(
    planner: &dyn PhysicalPlanner,
    node: &SkewedLeftCrossJoin,
    inputs: &[Arc<dyn ExecutionPlan>],
    ctx_state: &ExecutionContextState,
) -> Result<CrossJoinExec> {
    assert_eq!(inputs.len(), 2);
    let left = &inputs[0];
    let right = &inputs[1];

    let schema = build_join_schema(&left.schema(), &right.schema(), &JoinType::Left);
    let on = planner.create_physical_expr(&node.on, node.schema(), &schema, ctx_state)?;

    Ok(CrossJoinExec {
        left: left.clone(),
        left_result: Mutex::new(None),
        right: right.clone(),
        on,
        schema: Arc::new(schema),
    })
}

pub struct CrossJoinPlanner;
impl ExtensionPlanner for CrossJoinPlanner {
    fn plan_extension(
        &self,
        planner: &dyn PhysicalPlanner,
        node: &dyn UserDefinedLogicalNode,
        _logical_inputs: &[&LogicalPlan],
        inputs: &[Arc<dyn ExecutionPlan>],
        ctx_state: &ExecutionContextState,
    ) -> Result<Option<Arc<dyn ExecutionPlan>>> {
        let node = match node.as_any().downcast_ref::<SkewedLeftCrossJoin>() {
            None => return Ok(None),
            Some(j) => j,
        };

        Ok(Some(Arc::new(plan_cross_join(
            planner, node, inputs, ctx_state,
        )?)))
    }
}

/// This node currently exposes only right as its child.
/// Left is assumed to be constant and **not** exposed as a child of the plan. This is for
/// convenience of the consuming CubeStore code, lifting this restriction should be easy.
#[derive(Debug)]
pub struct CrossJoinExec {
    pub left: Arc<dyn ExecutionPlan>,
    pub left_result: Mutex<Option<std::result::Result<Arc<RecordBatch>, ()>>>,
    pub right: Arc<dyn ExecutionPlan>,
    pub on: Arc<dyn PhysicalExpr>,
    pub schema: SchemaRef,
}

impl CrossJoinExec {
    pub fn with_new_children_typed(
        &self,
        children: Vec<Arc<dyn ExecutionPlan>>,
    ) -> CrossJoinExec {
        assert_eq!(children.len(), 1);
        CrossJoinExec {
            left: self.left.clone(),
            left_result: Mutex::new(None),
            right: children[0].clone(),
            on: self.on.clone(),
            schema: self.schema.clone(),
        }
    }

    async fn do_compute_left(&self) -> Result<RecordBatch> {
        let batches = collect(self.left.clone()).await?;
        let num_rows = batches.iter().map(|b| b.num_rows()).sum();
        Ok(concat_batches(&self.left.schema(), &batches, num_rows)?)
    }

    pub async fn compute_left(&self) -> Result<Arc<RecordBatch>> {
        let mut left = self.left_result.lock().await;
        if left.is_none() {
            match self.do_compute_left().await {
                Ok(data) => *left = Some(Ok(Arc::new(data))),
                Err(e) => {
                    *left = Some(Err(()));
                    return Err(e);
                }
            }
        }
        match left.as_ref().unwrap() {
            Ok(data) => Ok(data.clone()),
            Err(()) => Err(DataFusionError::Internal("Could not compute left portion of cross join. See errors from other partitions for details".to_string())),
        }
    }
}

#[async_trait]
impl ExecutionPlan for CrossJoinExec {


numero1 = int(input("Digite um numero inteiro: "))
numero2 = int(input("Digite um numero inteiro: "))
numero3 = float(input("Digite um numero real: "))
print(numero1, numero2, numero3)


return r0, r1
}

// UpdateSecretWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SecretsManagerAPI) UpdateSecretWithContext(_a0 context.Context, _a1 *secretsmanager.UpdateSecretInput, _a2 ...request.Option) (*secretsmanager.UpdateSecretOutput, error) {
	_va := make([]interface{}, len(_a2))
	for _i := range _a2 {
		_va[_i] = _a2[_i]
	}
	var _ca []interface{}
	_ca = append(_ca, _a0, _a1)
	_ca = append(_ca, _va...)
	ret := _m.Called(_ca...)

	var r0 *secretsmanager.UpdateSecretOutput
	if rf, ok := ret.Get(0).(func(context.Context, *secretsmanager.UpdateSecretInput, ...request.Option) *secretsmanager.UpdateSecretOutput); ok {
		r0 = rf(_a0, _a1, _a2...)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*secretsmanager.UpdateSecretOutput)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, *secretsmanager.UpdateSecretInput, ...request.Option) error); ok {
		r1 = rf(_a0, _a1, _a2...)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ValidateResourcePolicy provides a mock function with given fields: _a0
func (_m *SecretsManagerAPI) ValidateResourcePolicy(_a0 *secretsmanager.ValidateResourcePolicyInput) (*secretsmanager.ValidateResourcePolicyOutput, error) {
	ret := _m.Called(_a0)

	var r0 *secretsmanager.ValidateResourcePolicyOutput
	if rf, ok := ret.Get(0).(func(*secretsmanager.ValidateResourcePolicyInput) *secretsmanager.ValidateResourcePolicyOutput); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*secretsmanager.ValidateResourcePolicyOutput)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(*secretsmanager.ValidateResourcePolicyInput) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ValidateResourcePolicyRequest provides a mock function with given fields: _a0
func (_m *SecretsManagerAPI) ValidateResourcePolicyRequest(_a0 *secretsmanager.ValidateResourcePolicyInput) (*request.Request, *secretsmanager.ValidateResourcePolicyOutput) {
	ret := _m.Called(_a0)

	var r0 *request.Request
	if rf, ok := ret.Get(0).(func(*secretsmanager.ValidateResourcePolicyInput) *request.Request); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*request.Request)
		}
	}

	var r1 *secretsmanager.ValidateResourcePolicyOutput
	if rf, ok := ret.Get(1).(func(*secretsmanager.ValidateResourcePolicyInput) *secretsmanager.ValidateResourcePolicyOutput); ok {
		r1 = rf(_a0)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(*secretsmanager.ValidateResourcePolicyOutput)
		}
	}

	return r0, r1
}

// ValidateResourcePolicyWithContext provides a mock function with given fields: _a0, _a1, _a2
func (_m *SecretsManagerAPI) ValidateResourcePolicyWithContext(_a0 context.Context, _a1 *secretsmanager.ValidateResource


/*___INFO__MARK_BEGIN__*/
/*************************************************************************
 *
 *  The Contents of this file are made available subject to the terms of
 *  the Sun Industry Standards Source License Version 1.2
 *
 *  Sun Microsystems Inc., March, 2001
 *
 *
 *  Sun Industry Standards Source License Version 1.2
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.2 (the "License"); You may not use this file
 *  except in compliance with the License. You may obtain a copy of the
 *  License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html
 *
 *  Software provided under this License is provided on an "AS IS" basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *   The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *   Copyright: 2001 by Sun Microsystems, Inc.
 *
 *   All Rights Reserved.
 *
 ************************************************************************/
/*___INFO__MARK_END__*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>

/* for service provider info (SPI) entries and projects */

#include "uti/config_file.h"
#include "uti/sge_uidgid.h"
#include "uti/sge_stdio.h"

#include "basis_types.h"
#include "err_trace.h"
#include "setosjobid.h"

void setosjobid(pid_t sid _UNUSED, gid_t *add_grp_id_ptr, struct passwd *pw _UNUSED)
{
   FILE *fp=NULL;

   shepherd_trace("setosjobid: uid = "gid_t_fmt", euid = "uid_t_fmt, getuid(), geteuid());

#  if defined(SOLARIS) || defined(ALPHA) || defined(LINUX) || defined(FREEBSD) || defined(DARWIN)
      /* Read SgeId from config-File and create Addgrpid-File */
      {
         char *cp;
         if ((cp = search_conf_val("add_grp_id")))
            *add_grp_id_ptr = atol(cp);
         else
            *add_grp_id_ptr = 0;
      }
      if ((fp = fopen("addgrpid", "w")) == NULL) {
         shepherd_error(1, "can't open \"addgrpid\" file");
      }
      fprintf(fp, gid_t_fmt"\n", *add_grp_id_ptr);
      FCLOSE(fp);
# elif defined(HP1164) || defined(AIX)
    {
      if ((fp = fopen("addgrpid", "w")) == NULL) {
         shepherd_error(1, "can't open \"addgrpid\" file");
      }
      fprintf(fp, pid_t_fmt"\n", getpgrp());
      FCLOSE(fp);
    }
#  else
   {
      char osjobid[100];
      if ((fp = fopen("osjobid", "w")) == NULL) {
         shepherd_error(1, "can't open \"osjobid\" file");
      }

      if(sge_switch2start_user() == 0) {
         /* write a default os-jobid to file */
         snprintf(osjobid, sizeof(osjobid), pid_t_fmt, sid);
         sge_switch2admin_user();
      }
      else /* not running as super user --> we want a default os-jobid */
         sprintf(osjobid, "0");

      if(fprintf(fp, "%s\n", osjobid) < 0)
         shepherd_trace("error writing osjobid file");

      FCLOSE(fp); /* Close os-jobid file */
   }
#  endif
   return;
FCLOSE_ERROR:
   shepherd_error(1, "can't close file");
}


v>

GRS

FSC

OEKO-TEX STANDARD 100

UKCA

<a href="//www.alibaba.com/trade/search?fsb=y&IndexArea=product_en&keywords=school+bags&originKeywords=school+bags&productAuthTag=KC&tab=all


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.
 */
package org.slf4j.impl;

import android.support.annotation.IntDef;
import android.util.Log;

import org.slf4j.Marker;
import org.slf4j.helpers.FormattingTuple;
import org.slf4j.helpers.MarkerIgnoringBase;
import org.slf4j.helpers.MessageFormatter;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * A simple implementation that delegates all log requests to the Google Android
 * logging facilities. Note that this logger does not support {@link Marker}.
 * That is, methods taking marker data simply invoke the corresponding method
 * without the Marker argument, discarding any marker data passed as argument.
 *

 * The logging levels specified for SLF4J can be almost directly mapped to
 * the levels that exist in the Google Android platform. The following table
 * shows the mapping implemented by this logger.
 *

 *

 *

 *
SLF4J	Android

 *
TRACE	{@link Log#VERBOSE}

 *
DEBUG	{@link Log#DEBUG}

 *
INFO	{@link Log#INFO}

 *
WARN	{@link Log#WARN}

 *
ERROR	{@link Log#ERROR}

 *

 *
 * @author Thorsten Möller
 * @author CTW
 */
public class AndroidLogger extends MarkerIgnoringBase {
    private static final long serialVersionUID = -1227274521521287937L;
    // The log level to be used. Default is WARN.
    @LogLevel
    private int mLogLevel = LogLevel.WARN;

    /**
     * Package access allows only {@link AndroidLoggerFactory} to instantiate
     * SimpleLogger instances.
     */
    AndroidLogger(final String name) {
        this.name = name;
    }

    int getLogLevel() {
        return mLogLevel;
    }

    void setLogLevel(@LogLevel final int logLevel) {
        mLogLevel = logLevel;
    }

    /* @see org.slf4j.Logger#isTraceEnabled() */
    @Override
    public boolean isTraceEnabled() {
        return mLogLevel <= Log.VERBOSE;
    }

    /* @see org.slf4j.Logger#trace(java.lang.String) */
    @Override
    public void trace(final String msg) {
        if (isTraceEnabled()) {
            formatAndLog(LogLevel.VERBOSE, msg);
        }
    }

    /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object) */
    @Override
    public void trace(final String format, final Object param1) {
        if (isTraceEnabled()) {
            formatAndLog(LogLevel.VERBOSE, format, param1);
        }
    }

    /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object, java.lang.Object) */
    @Override
    public void trace(final String format, final Object param1, final Object param2) {
        if (isTraceEnabled()) {
            formatAndLog(LogLevel.VERBOSE, format, param1, param2);
        }
    }

    /* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object[]) */
    @O


Name = "sugar", -- Name of the plant
                seedName = "sugarcaneseed", -- Item name for the seed
                plantProp = "p_tree_orange_01", -- Prop for the plant to be spawned
                soilRequired = false, -- If true, the seed will require soil to be planted
                soilAmount = 1, -- Amount of soil required to plant the seed
                soilName = "soil", -- Item name for the soil required to plant the seed
                fertilizerName = "fertilizerBlue", -- Item name for the fertilizer to fertilize the seed
                fertTimeReduction = 900, -- Time reduction in seconds when using fertilizer
                timeToGrow = 1800, -- Time in seconds for the plant to grow
                plantOffset = 1, -- If the plant is not on the ground properly you can use this setting
                jobLocked = false, -- If true, only players with the job will be able to harvest the plant
                rewards = {
                    {
                        itemName = "sugar",
                        amount = 4
                    }
                },
                jobs = {
                    'farmer',
                    'doctor'
                }
            }
,

 {

                webhooked = false, -- If true, it will send a message to the webhook when the plant is planted, and when it's harvested
                plantingToolRequired = true, -- If true, the player will need a tool to plant the seed
                plantingTool = "hoe", -- Item name for the tool required to plant the seed
                plantingToolDurability = 100, -- Durability of the tool required to plant the seed
                plantingToolUsage = 1, -- Durability usage of the tool required to plant the seed
                plantName = "onion", -- Name of the plant
                seedName = "onionseed", -- Item name for the seed
                plantProp = "p_tree_orange_01", -- Prop for the plant to be spawned
                soilRequired = false, -- If true, the seed will require soil to be planted
                soilAmount = 1, -- Amount of soil required to plant the seed
                soilName = "soil", -- Item name for the soil required to plant the seed
                fertilizerName = "fertilizerBlue", -- Item name for the


        int p = 0;
        switch (_axis) {
        case 'x': {
          for (int pe=_width-dp; p<pe; p+=dp) get_crop(p,0,0,0,p+dp-1,_height-1,_depth-1,_spectrum-1).move_to(res);
          get_crop(p,0,0,0,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res);
        } break;
        case 'y': {
          for (int pe=_height-dp; p<pe; p+=dp) get_crop(0,p,0,0,_width-1,p+dp-1,_depth-1,_spectrum-1).move_to(res);
          get_crop(0,p,0,0,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res);
        } break;
        case 'z': {
          for (int pe=_depth-dp; p<pe; p+=dp) get_crop(0,0,p,0,_width-1,_height-1,p+dp-1,_spectrum-1).move_to(res);
          get_crop(0,0,p,0,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res);
        } break;
        default : {
          for (int pe=_spectrum-dp; p<pe; p+=dp) get_crop(0,0,0,p,_width-1,_height-1,_depth-1,p+dp-1).move_to(res);
          get_crop(0,0,0,p,_width-1,_height-1,_depth-1,_spectrum-1).move_to(res);
        }
        }

      } else { // Split by number of (non-homogeneous) blocs.
        const unsigned int siz = _axis=='x'?_width:_axis=='y'?_height:_axis=='z'?_depth:_axis=='c'?_spectrum:0;
        if ((unsigned int)nb>siz)
          throw CImgArgumentException(_cimg_instance
                                      "get_split(): Instance cannot be split along %c-axis into %u blocs.",
                                      cimg_instance,
                                      axis,nb);
        int err = (int)siz;
        unsigned int _p = 0;
        switch (_axis) {
        case 'x' : {
          cimg_forX(*this,p) if ((err-=nb)<=0) {
            get_crop(_p,0,0,0,p,_height-1,_depth-1,_spectrum-1).move_to(res);
            err+=(int)siz;
            _p=p+1;
          }
        } break;
        case 'y' : {
          cimg_forY(*this,p) if ((err-=nb)<=0) {
            get_crop(0,_p,0,0,_width-1,p,_depth-1,_spectrum-1).move_to(res);
            err+=(int)siz;
            _p=p+1;
          }
        } break;
        case 'z' : {
          cimg_forZ(*this,p) if ((err-=nb)<=0) {
            get_crop(0,0,_p,0,_width-1,_height-1,p,_spectrum-1).move_to(res);
            err+=(int)siz;
            _p=p+1;
          }
        } break;
        default : {
          cimg_forC(*this,p) if ((err-=nb)<=0) {
            get_crop(0,0,0,_p,_width-1,_height-1,_depth-1,p).move_to(res);
            err+=(int)siz;
            _p=p+1;
          }
        }
        }
      }
      return res;
    }

    //! Split image into a list of one-column vectors, according to a specified splitting value.
    /**
       \param value Splitting value.
       \param keep_values Tells if the splitting value must be kept in the splitted blocs.
       \param is_shared Tells if the splitted blo


司的 API 调用，用户基于“能力 + 成本”的实际需求选择模型，这种选择本身构成了基于真实应用的投票。

Simon Willison 同样认同 OpenRouter 排行榜的潜力，认为其基于真实用户/公司基于“能力 + 成本”的 API 调用选择，构成了一种更难被游戏化的、基于真实应用的投票。他展示的 OpenRouter“本月热门”截图也显示了与 Arena 不同的排名格局（例如 Claude 3.7 Sonnet 位居榜首）。不过，他也指出了其潜在弱点：单个大客户的切换可能对排名产生过大影响。

最终，Simon Willison 的核心诉求是“更多透明度”。他希望了解模型登顶前，供应商测试了多少变体、这些未发布变体的得分如何。这些信息将帮助用户判断高分是源于基准游戏还是模型家族的普遍高质量。

这篇研究并非全盘否定 Chatbot Arena 的价值，而是对其敲响了警钟。它深刻揭示了当一个评估指标（Arena 排名）变得极其重要时，就可能因其内在机制的缺陷或被策略性利用，而偏离其最初的目标（衡量真实能力），这正是古德哈特定律 (Goodhart's Law) 的体现。对于刚入门的技术和专业读者而言，这篇文章的启示在于：

- 审慎看待排行榜：任何单一的排行榜都不应被视为模型能力的最终定论。理解其背后的评估方法、数据来源、潜在偏见以及它衡量的是什么（能力 vs 偏好）至关重要。
- 关注评估的公平性与透明度：在选择、使用或设计评估基准时，必须高度关注其规则是否公平、过程是否透明。缺乏透明度和公平性的评估，其结果的可信度必然大打折扣。
- 警惕“指标陷阱”：无论是开发模型还是应用模型，都应避免过度优化单一指标，而应关注模型在实际应用场景中的综合表现和真实价值。结合基准测试、用户反馈、实际应用表现（如 Karpathy 提到的 OpenRouter 模式）以及专家评测来综合判断模型。

作者最后提出了一系列具体、可行的改革建议，包括禁止分数撤回、限制私有测试、实现公平采样和透明化模型淘汰等，旨在恢复 Chatbot Arena 的科学诚信和社区信任。这为我们思考如何构建更健康、更可持续的 AI 评估生态提供了有益的参考。

对于�


 <https://www.gnu.org/licenses/>.
 */

package verifier

import analysis.maybeExpr
import datastructures.stdcollections.*
import spec.QUANTIFIED_VAR_TYPE
import spec.cvlast.CVLType
import tac.Tag
import utils.*
import vc.data.*
import vc.data.TACBuiltInFunction.Hash.Companion.skeySort
import vc.data.TACMeta.CVL_TYPE
import vc.data.tacexprutil.TACExprUtils.contains
import vc.data.tacexprutil.postTransform
import vc.data.tacexprutil.replaceVarsExtended
import vc.data.tacexprutil.subs

/**
 * This is a band-aid class to rewrite the quantified expressions
 *
 * First simplification comes from storage comparison:
 * ```
 *   forall uint x. ... storage-access[to_skey(x)] ...
 * ```
 * If x only appears directly inside a `to_skey(x)`, we can replace the above with:
 * ```
 *    forall skey x. ... storage-access[x] ...
 * ```
 * This is clearly simpler, and makes life better for grounding, as it expects map/array accesses to be done directly
 * with a quantified variable (and not wrapped in any other operation as we see here).
 *
 * Ideally, storage comparison should have generated these expressions to begin with, but apparently it's not easy at
 * that stage in the pipeline.
 *
 * Another simplification is to change the tag, and remove unnecessary [TACBuiltInFunction.SafeMathNarrow] operations,
 * based on the original CVL type of the quantified variable.
 * ```
 * forall int i, ... select(a, safeMathNarrowToK(i)) ...
 * ```
 * to:
 * ```
 * forall BitsK i, ... select(a, i) ...
 * ```
 */
class QuantifierNormalizer(val prog: CoreTACProgram) {
    private val concurrentPatcher = ConcurrentPatchingProgram(prog)

    private fun TACExpr.isVariable(v: TACSymbol.Var) =
        (this as? TACExpr.Sym.Var)?.s == v

    private inline fun <reified T : TACBuiltInFunction> TACExpr.applyExprArg(): TACExpr? =
        runIf(this is TACExpr.Apply && (f as? TACExpr.TACFunctionSym.BuiltIn)?.bif is T) {
            getOperands().single()
        }

    /** the storage comparison case */
    private fun rewriteSkeys(q: TACSymbol.Var, body: TACExpr): Pair<TACSymbol.Var, TACExpr>? {
        fun TACExpr.isToSkeyOf(v : TACSymbol.Var) =
            applyExprArg<TACBuiltInFunction.Hash.ToSkey>()?.isVariable(v) == true

        val toSkeyQCount = body.subs.count { it.isToSkeyOf(q) }
        if (toSkeyQCount == 0) {
            return null
        }
        val qCount = body.subs.count { it.isVariable(q) }
        if (qCount != toSkeyQCount) {
            return null
        }
        val newQ = q.copy(tag = skeySort)
        return newQ to
            body.replaceVarsExtended(q to newQ)
                .postTransform {
                    when {
                        it.isToSkeyOf(newQ) -> newQ.asSym()
                        else -> it
                    }
                }
    }

    /** the safemathnarrow case */
    private fun rewriteNarrows(q: TACSymbol.Var, body: TACExpr): Pair<TACSymbol.Var, TACExpr>? {
        fun TACExpr.isNarrowingOf(v: TACSymbol.Var) =
            applyExprArg<TACBuiltInFunction.SafeMathNarrow>()?.isVariable(v) == true
        if (q.tag != Tag.Int) {
            return null
        }
        val actualTag = q.meta[CVL_TYPE]?.toTag() as? Tag.Bits


material) {
			bool anyFixedNormalSet = false;
			foreach (string fixedNormalKeyword in FIXED_NORMALS_KEYWORDS) {
				if (material.IsKeywordEnabled(fixedNormalKeyword)) {
					anyFixedNormalSet = true;
					break;
				}
			}
			bool isShaderWithMeshNormals = IsLitSpriteShader(material);
			return isShaderWithMeshNormals && !anyFixedNormalSet;
		}

		static bool IsLitSpriteShader (Material material) {
			string shaderName = material.shader.name;
			return shaderName.Contains("Spine/Sprite/Pixel Lit") ||
				shaderName.Contains("Spine/Sprite/Vertex Lit") ||
				shaderName.Contains("2D/Spine/Sprite") || // covers both URP and LWRP
				shaderName.Contains("Pipeline/Spine/Sprite"); // covers both URP and LWRP
		}

		static bool IsSpriteShader (Material material) {
			if (IsLitSpriteShader(material))
				return true;
			string shaderName = material.shader.name;
			return shaderName.Contains("Spine/Sprite/Unlit");
		}

		static bool RequiresTintBlack (Material material) {
			bool isTintBlackShader =
				material.shader.name.Contains("Spine") &&
				material.shader.name.Contains("Tint Black");
			return isTintBlackShader;
		}

		static bool RequiresTangents (Material material) {
			return material.IsKeywordEnabled(NORMALMAP_KEYWORD);
		}
		static bool IsCanvasGroupCompatible (Material material) {
			return material.IsKeywordEnabled(CANVAS_GROUP_COMPATIBLE_KEYWORD);
		}

		static bool CanvasNotSetupForTintBlack (SkeletonGraphic skeletonGraphic) {
			Canvas canvas = skeletonGraphic.canvas;
			if (!canvas)
				return false;
			var requiredChannels =
				AdditionalCanvasShaderChannels.TexCoord1 |
				AdditionalCanvasShaderChannels.TexCoord2;
			return (canvas.additionalShaderChannels & requiredChannels) != requiredChannels;
		}
	}
}

#endif // UNITY_EDITOR


0D 2642 FE0F",
    char: "🧛♂",
    name: "man vampire",
    keywords: "Dracula | man vampire | undead",
    category: "People & Body",
  },
  {
    no: 322,
    codes: "1F9DB 200D 2640 FE0F",
    char: "🧛♀",
    name: "woman vampire",
    keywords: "undead | woman vampire",
    category: "People & Body",
  },
  {
    no: 323,
    codes: "1F9DC",
    char: "🧜",
    name: "merperson",
    keywords: "mermaid | merman | merperson | merwoman",
    category: "People & Body",
  },
  {
    no: 324,
    codes: "1F9DC 200D 2642 FE0F",
    char: "🧜♂",
    name: "merman",
    keywords: "merman | Triton",
    category: "People & Body",
  },
  {
    no: 325,
    codes: "1F9DC 200D 2640 FE0F",
    char: "🧜♀",
    name: "mermaid",
    keywords: "mermaid | merwoman",
    category: "People & Body",
  },
  {
    no: 326,
    codes: "1F9DD",
    char: "🧝",
    name: "elf",
    keywords: "elf | magical | LOTR style",
    category: "People & Body",
  },
  {
    no: 327,
    codes: "1F9DD 200D 2642 FE0F",
    char: "🧝♂",
    name: "man elf",
    keywords: "magical | man elf",
    category: "People & Body",
  },
  {
    no: 328,
    codes: "1F9DD 200D 2640 FE0F",
    char: "🧝♀",
    name: "woman elf",
    keywords: "magical | woman elf",
    category: "People & Body",
  },
  {
    no: 329,
    codes: "1F9DE",
    char: "🧞",
    name: "genie",
    keywords: "djinn | genie | (non-human color)",
    category: "People & Body",
  },
  {
    no: 330,
    codes: "1F9DE 200D 2642 FE0F",
    char: "🧞♂",
    name: "man genie",
    keywords: "djinn | man genie",
    category: "People & Body",
  },
  {
    no: 331,
    codes: "1F9DE 200D 2640 FE0F",
    char: "🧞♀",
    name: "woman genie",
    keywords: "djinn | woman genie",
    category: "People & Body",
  },
  {
    no: 332,
    codes: "1F9DF",
    char: "🧟",
    name: "zombie",
    keywords: "undead | walking dead | zombie | (non-human color)",
    category: "People & Body",
  },
  {
    no: 333,
    codes: "1F9DF 200D 2642 FE0F",
    char: "🧟♂",
    name: "man zombie",
    keywords: "man zombie | undead | walking dead",
    category: "People & Body",
  },
  {
    no: 334,
    codes: "1F9DF 200D 2640 FE0F",
    char: "🧟♀",
    name: "woman zombie",
    keywords: "undead | walking dead | woman zombie",
    category: "People & Body",
  },
  {
    no: 335,
    codes: "1F486",
    char: "💆",
    name: "person getting massage",
    keywords


tcoindnotify.New(
			bitcoindConn, cfg.ActiveNetParams.Params, hintCache,
			hintCache, cfg.BlockCache,
		)
		cc.ChainView = chainview.NewBitcoindFilteredChainView(
			bitcoindConn, cfg.BlockCache,
		)
		cc.ChainSource = bitcoindConn.NewBitcoindClient()

		// If we're not in regtest mode, then we'll attempt to use a
		// proper fee estimator for testnet.
		rpcConfig := &rpcclient.ConnConfig{
			Host:                 bitcoindHost,
			User:                 bitcoindMode.RPCUser,
			Pass:                 bitcoindMode.RPCPass,
			DisableConnectOnNew:  true,
			DisableAutoReconnect: false,
			DisableTLS:           true,
			HTTPPostMode:         true,
		}
		if cfg.Bitcoin.Active && !cfg.Bitcoin.RegTest {
			log.Infof("Initializing bitcoind backed fee estimator "+
				"in %s mode", bitcoindMode.EstimateMode)

			// Finally, we'll re-initialize the fee estimator, as
			// if we're using bitcoind as a backend, then we can
			// use live fee estimates, rather than a statically
			// coded value.
			//fallBackFeeRate := chainfee.SatPerKVByte(25 * 1000)
			fallBackFeeRate := chainfee.SatPerKVByte(2000)
			cc.FeeEstimator, err = chainfee.NewBitcoindEstimator(
				*rpcConfig, bitcoindMode.EstimateMode,
				fallBackFeeRate.FeePerKWeight(),
			)
			if err != nil {
				return nil, nil, err
			}
		} else if cfg.Litecoin.Active && !cfg.Litecoin.RegTest {
			log.Infof("Initializing litecoind backed fee "+
				"estimator in %s mode",
				bitcoindMode.EstimateMode)

			// Finally, we'll re-initialize the fee estimator, as
			// if we're using litecoind as a backend, then we can
			// use live fee estimates, rather than a statically
			// coded value.
			fallBackFeeRate := chainfee.SatPerKVByte(25 * 1000)
			cc.FeeEstimator, err = chainfee.NewBitcoindEstimator(
				*rpcConfig, bitcoindMode.EstimateMode,
				fallBackFeeRate.FeePerKWeight(),
			)
			if err != nil {
				return nil, nil, err
			}
		}

		// We need to use some apis that are not exposed by btcwallet,
		// for a health check function so we create an ad-hoc bitcoind
		// connection.
		chainConn, err := rpcclient.New(rpcConfig, nil)
		if err != nil {
			return nil, nil, err
		}

		// The api we will use for our health check depends on the
		// bitcoind version.
		cmd, err := getBitcoindHealthCheckCmd(chainConn)
		if err != nil {
			return nil, nil, err
		}

		cc.HealthCheck = func() error {
			_, err := chainConn.RawRequest(cmd, nil)
			return err
		}
		cc.Rclient = chainConn

	case "btcd", "ltcd":
		// Otherwise, we'll be speaking directly via RPC to a node.
		//
		// So first we'll load btcd/ltcd's TLS cert for the RPC
		// connection. If a raw cert was specified in the config, then
		// we'll set that directly. Otherwise, we attempt to read the
		// cert from the path specified in the config.
		var btcdMode *lncfg.Btcd
		switch {
		case cfg.Bitcoin.Active:
			btcdMode = cfg.BtcdMode
		case cfg.Litecoin.Active:
			btcdMode = cfg.LtcdMode
		}
		var rpcCert []byte


    if ("development" !== 'production') {
      var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;
      for (var lowerCasedName in possibleRegistrationNames) {
        if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {
          delete possibleRegistrationNames[lowerCasedName];
        }
      }
    }
  }

};

module.exports = EventPluginRegistry;
},{"124":124,"150":150}],19:[function(_dereq_,module,exports){
/**
 * Copyright 2013-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 */

'use strict';

var _prodInvariant = _dereq_(124);

var ReactErrorUtils = _dereq_(55);

var invariant = _dereq_(150);
var warning = _dereq_(157);

/**
 * Injected dependencies:
 */

/**
 * - `ComponentTree`: [required] Module that can convert between React instances
 *   and actual node references.
 */
var ComponentTree;
var TreeTraversal;
var injection = {
  injectComponentTree: function (Injected) {
    ComponentTree = Injected;
    if ("development" !== 'production') {
      "development" !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;
    }
  },
  injectTreeTraversal: function (Injected) {
    TreeTraversal = Injected;
    if ("development" !== 'production') {
      "development" !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;
    }
  }
};

function isEndish(topLevelType) {
  return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';
}

function isMoveish(topLevelType) {
  return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';
}
function isStartish(topLevelType) {
  return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';
}

var validateEventDispatches;
if ("development" !== 'production') {
  validateEventDispatches = function (event) {
    var dispatchListeners = event._dispatchListeners;
    var dispatchInstances = event._dispatchInstances;

    var listenersIsArr = Array.isArray(dispatchListeners);
    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;

    var instancesIsArr = Array.isArray(dispatchInstances);
    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;

    "development" !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;
  };
}

/**
 * Dispatch the event to the listener.
 * @param {SyntheticEvent} event SyntheticEvent to handle
 * @param {boolean} simulated If the event is simulated (changes exn behavior)
 * @param {function} listener Application-level callback
 * @param {*} inst Internal component instance
 */
function executeDispatch(event, simulated, listener, inst) {
  var type = event.type || 'unknown-event';
  event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);
  if (simulated) {
    ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);
  } else {
    ReactErrorUtils.invokeGuardedCallback(type, listener, event);
  }


》载,大洪水后诺亚方舟即停于此)",
"Ararats":"(Ararat 的第三人称 -s形式) (Mount)阿勒山[土耳其东部](一译\"亚拉腊\", 据基督教《圣经》载,大洪水后诺亚方舟即停于此)",
"arariba":" 中裂豆木",
"araroba":"n. [植]柯桠树(产于巴西), 柯桠粉(来自柯桠树)",
"araroba depurata":"[医] 柯桠素",
"aras":"abbr. ascending reticular activating system 上行网状激活系统",
"arasa":"阿腊萨根木材, 巴西番石榴, 阿拉萨",
"Arasan":"福美双",
"arasapogenin":"五加皂草苷",
"arashi":"n. 岚（日本一组合）",
"araskog":" [人名] 阿拉斯科格",
"arat":"abbr. 自动随机存取传送（automatic random access transport）",
"arata":" [人名]井浦新",
"Arathane":"[化] 阿乐丹",
"Arathene":"高密度聚乙烯合成纸(商业名称, 比利时UCB产品)",
"arathoon":" [人名] 阿拉松",
"arato":" [地名] [日本] 荒户〈福冈县〉; [地名] [日本] 荒砥〈山形县〉",
"aratos":"(arato 的复数)  [地名] [日本] 荒户〈福冈县〉; [地名] [日本] 荒砥〈山形县〉",
"arats":"abbr. 海峡两岸关系协会（Association for Relations Across the Taiwan Straits）",
"aratus":"n. (Aratus)人名；(希)亚拉图；(法)阿拉蒂",
"arau":"n. (Arau)人名；(西)阿劳；(法)阿罗",
"arauca":" 阿劳卡河（发源于哥伦比亚北部的一条河流，流程约805公里(500英里），向东注入委内瑞拉中部的奥里诺科河)",
"Araucan":"n. 阿劳干语组的印第安语",
"araucana":"n. 阿拉乌咖那（诗集名）",
"araucania":"阿劳卡尼亚(智利中部的地区)",
"Araucanian":"n. 阿洛柯人；阿洛柯语\\na. 阿洛柯人的；阿洛柯语的",
"araucanians":"n. 阿洛柯人；阿洛柯语\\nadj. 阿洛柯人的；阿洛柯语的",
"araucaria":"n. 南洋杉",
"araucaria angustifolia":"[机] 南美杉",
"Araucaria araucana":"[网络] 智利南洋杉；南洋杉属；阿根廷及智利种",
"Araucaria bi


Exception(nameof(writer));
                if(RunStepDetailsToolCallsCodeObject != null) {
                    writer.WriteObjectValue<OpenAI.GeneratedKiotaClient.Models.RunStepDetailsToolCallsCodeObject>(null, RunStepDetailsToolCallsCodeObject);
                }
                else if(RunStepDetailsToolCallsFunctionObject != null) {
                    writer.WriteObjectValue<OpenAI.GeneratedKiotaC


VK_DELETE", {});
    controller.waitForElementNotPresent(new elementslib.Lookup(controller.window.document, box));
};

var teardownTest = function(module) {
    calUtils.deleteCalendars(controller, calendar);
};
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

var calUtils = require("../shared-modules/calendar-utils");
var modalDialog = require("../shared-modules/modal-dialog");
var utils = require("../shared-modules/utils");

var sleep = 500;
var calendar = "Mozmill";
var endDate = new Date(2009, 0, 26); // last Monday in month
var hour = 8;
var eventPath = '/{"tooltip":"itemTooltip","calendar":"' + calendar.toLowerCase() + '"}';

var setupModule = function(module) {
    controller = mozmill.getMail3PaneController();
    calUtils.createCalendar(controller, calendar);
};

var testWeeklyUntilRecurrence = function() {
    controller.click(new elementslib.ID(controller.window.document, "calendar-tab-button"));
    calUtils.switchToView(controller, "day");
    calUtils.goToDate(controller, 2009, 1, 5); // Monday

    // rotate view
    controller.mainMenu.click("#ltnViewRotated");
    controller.waitFor(() => {
        let view = (new elementslib.ID(controller.window.document, "day-view")).getNode();
        return view.orient == "horizontal";
    });

    // create weekly recurring event
    controller.doubleClick(new elementslib.Lookup(controller.window.document,
      calUtils.getEventBoxPath(controller, "day", calUtils.CANVAS_BOX, undefined, 1, hour)), 1, 1);
    controller.waitFor(() => mozmill.utils.getWindows("Calendar:EventDialog").length > 0, sleep);
    let event = new mozmill.controller.MozMillController(mozmill.utils.getWindows("Calendar:EventDialog")[0]);

    let dialog = new modalDialog.modalDialog(event.window);
    dialog.start(setRecurrence);
    event.waitForElement(new elementslib.ID(event.window.document, "item-repeat"));
    event.select(new elementslib.ID(event.window.document, "item-repeat"), undefined, undefined, "custom");

    event.click(new elementslib.ID(event.window.document, "button-saveandclose"));
    controller.waitFor(() => mozmill.utils.getWindows("Calendar:EventDialog").length == 0);

    let box = calUtils.getEventBoxPath(controller, "day", calUtils.EVENT_BOX, undefined, 1, hour) +
      eventPath;

    // check day view
    for (let week = 0; week < 3; week++) {
        // Monday
        controller.assertNode(new elementslib.Lookup(controller.window.document, box));
        calUtils.forward(controller, 2);
        // Wednesday
        controller.assertNode(new elementslib.Lookup(controller.window.document, box));
        calUtils.forward(controller, 2);
        // Friday
        controller.assertNode(new elementslib.Lookup(controller.window.document, box));
        calUtils.forward(controller, 3);
    }

    // Monday, last occurrence
    controller.assertNode(new elementslib.Lookup(controller.window.document, box));
    calUtils.forward(controller, 2);
    // Wednesday
    controller.assertNodeNotExist(new elementslib.Lookup(controller.window.document, box));
    calUtils.forward(controller, 2);

    // check week view
    calUtils.switchToView(controller, "week");
    calUtils.goToDate(controller, 2009, 1, 5);
    for (let week = 0; week < 3; week++) {
        // Monday
        box = calUti


87498361,22.6726583 9.49919009,23.2355308 10.3113143,22.2472519 Z M18.8749574,20.0472487 L10.0148139,16.3863535 L18.5870591,6.25431286 C18.7933002,6.01370522 18.4624752,5.68716028 18.2218255,5.8934014 L7.25193822,15.2433623 L2.37499672,13.232438 L21.6249508,2.12504262 L18.8749574,20.0472487 Z M9.24998033,21.3749967 L9.24998033,17.5593892 L11.5917716,18.5261838 L9.24998033,21.3749967 Z" id="p" /></g></svg>');
  }

  a.cta.primary i.icn-pencil:before, button.cta.primary i.icn-pencil:before {
    content: url('data:image/svg+xml; utf8,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" version="1.1"><g id="Atoms-/-Icons-/-Pencil" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><path fill="rgba(255, 255, 255, 0.99)" d="M2.14534105,22.7435314 L7.05165565,22.1984086 L22.1945372,7.05552708 C23.2684177,5.98156266 23.2684177,4.24032535 22.1944952,3.16644486 L20.5835905,1.55554019 C19.5097101,0.481617733 17.7685147,0.481575772 16.6945083,1.55554019 L1.5516268,16.6983798 L1.00650404,21.6046944 C0.933532873,22.2615188 1.48860052,22.8165445 2.14534105,22.7435314 Z M19.076289,8.22910826 L15.5208852,4.67370445 L17.6667579,2.52778977 C18.2040758,1.99047186 19.0738972,1.99038794 19.611299,2.52778977 L21.2222037,4.13869443 C21.7595635,4.6760543 21.7596055,5.54579176 21.2222037,6.08323554 L19.076289,8.22910826 Z M8.47654467,18.8288945 L8.47654467,17.3359439 L6.41404959,17.3359439 L6.41404959,15.2734488 L4.9210989,15.2734488 L14.5486356,5.64595402 L15.8402127,6.93753114 L8.07631522,14.7013867 C7.80780314,14.9698568 7.80780314,15.4051661 8.07631522,15.6736363 C8.34482731,15.9421064 8.78013663,15.9420644 9.04860676,15.6736363 L16.8124623,7.90978072 L18.1040394,9.20135784 L8.47654467,18.8288945 Z M3.88544539,21.1667415 L2.58325199,19.8645481 L2.86494001,17.3296077 L3.71797677,16.4765709 L5.21092746,16.4765709 L5.21092746,18.539066 L7.27342254,18.539066 L7.27342254,20.0320167 L6.42038579


expand=727,1063,4909,1062,1062&text=_mm512_cmplt_epu64)
#[inline]
#[target_feature(enable = "avx512f")]
#[cfg_attr(test, assert_instr(vpcmp))]
pub unsafe fn _mm512_cmplt_epu64_mask(a: __m512i, b: __m512i) -> __mmask8 {
    simd_bitmask::<__m512i, _>(simd_lt(a.as_u64x8(), b.as_u64x8()))
}

///Compare packed unsigned 64-bit integers in a and b for less-than, and store the results in a mask vector k
/// using zeromask m (elements are zeroed out when the corresponding mask bit is not set).
///
/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=727,1063,4909,1062,1062,1063&text=_mm512_mask_cmplt_epu64)
#[inline]
#[target_feature(enable = "avx512f")]
#[cfg_attr(test, assert_instr(vpcmp))]
pub unsafe fn _mm512_mask_cmplt_epu64_mask(m: __mmask8, a: __m512i, b: __m512i) -> __mmask8 {
    _mm512_cmplt_epu64_mask(a, b) & m
}

/// Compare packed unsigned 64-bit integers in a and b for less-than, and store the results in a mask vector.
///
/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=727,1063,4909,1062,1062&text=_mm512_cmpgt_epu64)
#[inline]
#[target_feature(enable = "avx512f")]
#[cfg_attr(test, assert_instr(vpcmp))]
pub unsafe fn _mm512_cmpgt_epu64_mask(a: __m512i, b: __m512i) -> __mmask8 {
    simd_bitmask::<__m512i, _>(simd_gt(a.as_u64x8(), b.as_u64x8()))
}

///Compare packed unsigned 64-bit integers in a and b for less-than, and store the results in a mask vector k
/// using zeromask m (elements are zeroed out when the corresponding mask bit is not set).
///
/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=727,1063,4909,1062,1062,1063&text=_mm512_mask_cmpgt_epu64)
#[inline]
#[target_feature(enable = "avx512f")]
#[cfg_attr(test, assert_instr(vpcmp))]
pub unsafe fn _mm512_mask_cmpgt_epu64_mask(m: __mmask8, a: __m512i, b: __m512i) -> __mmask8 {
    _mm512_cmpgt_epu64_mask(a, b) & m
}

/// Compare packed unsigned 64-bit integers in a and b for less-than, and store the results in a mask vector.
///
/// [Intel's documentation](https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=727,1063,4909,1062,1062&text=_mm512_cmple_epu64)
#[inline]
#[target_feature(enable = "avx512f")]
#[cfg_attr(test, assert_instr(vpcmp))]
pub unsafe fn _mm512_cmple_epu64_mask(a: __m512i, b: __m512i) -> __mmask8 {
    _mm512_cmpgt_epu64_mask(b, a)
}

///Compare packed unsigned 64-bit integers in a


:= range chunkDigits {
				if digit == 0 {
					continue
				}
				totalOps++
				bucketID := digit >> 1
				if digit&1 == 0 {
					bucketID -= 1
				}
				if !b[bucketID] {
					nz++
					b[bucketID] = true
				}
			}
			chunkStats[chunkID].weight = float32(totalOps) // count number of ops for now, we will compute the weight after
			chunkStats[chunkID].ppBucketFilled = (float32(nz) * 100.0) / float32(int(1<<(c-1)))
			chunkStats[chunkID].nbBucketFilled = nz
		}
	}, nbTasks)

	totalOps := float32(0.0)
	for _, stat := range chunkStats {
		totalOps += stat.weight
	}

	target := totalOps / float32(nbChunks)
	if target != 0.0 {
		// if target == 0, it means all the scalars are 0 everywhere, there is no work to be done.
		for i := 0; i < len(chunkStats); i++ {
			chunkStats[i].weight = (chunkStats[i].weight * 100.0) / target
		}
	}

	return digits, chunkStats
}
// Copyright 2020-2025 Consensys Software Inc.
// Licensed under the Apache License, Version 2.0. See the LICENSE file for details.

// Code generated by gnark DO NOT EDIT

package cs_test

import (
	"bytes"
	"reflect"
	"testing"

	"github.com/consensys/gnark/constraint"
	"github.com/consensys/gnark/frontend"
	"github.com/consensys/gnark/frontend/cs/r1cs"
	"github.com/consensys/gnark/frontend/cs/scs"
	"github.com/consensys/gnark/internal/backend/circuits"
	"github.com/consensys/gnark/internal/widecommitter"

	"github.com/google/go-cmp/cmp"
	"github.com/google/go-cmp/cmp/cmpopts"

	cs "github.com/consensys/gnark/constraint/tinyfield"

	fr "github.com/consensys/gnark/internal/smallfields/tinyfield"
)

func TestSerialization(t *testing.T) {

	var buffer, buffer2 bytes.Buffer

	for name := range circuits.Circuits {
		t.Run(name, func(t *testing.T) {
			tc := circuits.Circuits[name]
			if name == "range_constant" {
				return
			}
			builder := r1cs.NewBuilder[constraint.U32]
			if name == "commit" {
				// smallfield builders do not support commitment. We use the wrapper which has the methods
				builder = widecommitter.From(builder)
			}

			r1cs1, err := frontend.CompileGeneric(fr.Modulus(), builder, tc.Circuit)
			if err != nil {
				t.Fatal(err)
			}
			if testing.Short() && r1cs1.GetNbConstraints() > 50 {
				return
			}

			// compile a second time to ensure determinism
			r1cs2, err := frontend.CompileGeneric(fr.Modulus(), builder, tc.Circuit)
			if err != nil {
				t.Fatal(err)
			}

			{
				buffer.Reset()
				t.Log(name)
				var err error
				var written, read int64
				written, err = r1cs1.WriteTo(&buffer)
				if err != nil {
					t.Fatal(err)
				}
				var reconstructed cs.R1CS
				read, err = reconstructed.ReadFrom(&buffer)
				if err != nil {
					t.Fatal(err)
				}
				if written != read {
					t.Fatal("didn't read same number of bytes we wrote")
				}

				// compare original and reconstructed
				if diff := cmp.Diff(r1cs1, &reconstructed,
					cmpopts.IgnoreFields(cs.R1CS{},
						"


-.477 4.54-.566-.001-.002-5.851-1.431-8.769.805m23.226-4.279c1.244 1.195.372 3.248.105 4.273-.262 1.012-1.58 1.863-1.58 1.863 1.037-.207 1.908-.215 2.553-2.703.645-2.482-1.078-3.433-1.078-3.433m2.16.931c1.139 1.309.101 3.271-.25 4.26-.348.986-1.734 1.709-1.734 1.709 1.051-.107 1.918-.031 2.769-2.447.856-2.412-.785-3.522-.785-3.522m1.916.709c1.174 1.277.18 3.271-.143 4.27-.32.996-1.682 1.758-1.682 1.758 1.043-.137 1.915-.088 2.701-2.527.79-2.438-.876-3.501-.876-3.501M15.142 38.447c.924.309.542 1.242 1.626 1.242 1.086 0 1.806-.83 1.215-1.256-1.338-.958-2.841.014-2.841.014"/></svg>';
  static const String shaved_ice =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="64" height="64" preserveAspectRatio="xMidYMid meet" viewBox="0 0 64 64"><path fill="currentColor" d="M52.634 27.574c.051-.521-.027-1.089-.116-1.65-.052-.323-.115-.725-.101-.893.026-.303.182-.834.332-1.348.24-.821.488-1.671.458-2.341-.038-.862-.471-1.975-.889-3.051-.252-.648-.513-1.318-.599-1.736-.057-.273-.064-.775-.072-1.26-.016-.977-.031-1.987-.387-2.691-.352-.697-1.148-1.307-1.919-1.897-.414-.317-.883-.677-1.067-.906-.131-.161-.321-.567-.49-.925-.33-.702-.671-1.428-1.184-1.848-.635-.521-1.667-.778-2.665-1.028-.598-.149-1.275-.318-1.569-.49-.236-.137-.639-.558-.993-.93-.606-.635-1.233-1.292-1.913-1.561-.392-.155-.883-.225-1.595-.225-.318 0-.654.014-.98.027-.477.02-.944.048-1.253 0-.226-.035-.654-.186-1.031-.319C33.896 2.256 33.169 2 32.547 2c-.583.003-1.258.252-1.91.493-.361.133-.812.299-1.021.325-.273.033-.712-.029-1.187-.086-.853-.104-1.757-.178-2.337.002-.621.193-1.201.716-1.762 1.223-.3.27-.673.606-.859.696-.298.143-.971.257-1.565.357-.948.161-1.929.326-2.576.743-.658.424-1.226 1.261-1.774 2.07-.31.457-.63.929-.855 1.147-.186.18-.599.442-.997.697-.714.455-1.452.926-1.847 1.481-.335.471-.472 1.111-.616 1.789-.074.35-.188.88-.27


com.sparrowwallet.lark.bitbox02.generated.BTCPaymentRequestRequest.Memo.TextMemo)
          TextMemoOrBuilder {
      private static final long serialVersionUID = 0L;
        static {
          com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
            com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
            /* major= */ 4,
            /* minor= */ 28,
            /* patch= */ 3,
            /* suffix= */ "",
            TextMemo.class.getName());
        }
        // Use TextMemo.newBuilder() to construct.
        private TextMemo(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
          super(builder);
        }
        private TextMemo() {
          note_ = "";
        }

        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.sparrowwallet.lark.bitbox02.generated.Btc.internal_static_com_sparrowwallet_lark_bitbox02_generated_BTCPaymentRequestRequest_Memo_TextMemo_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.sparrowwallet.lark.bitbox02.generated.Btc.internal_static_com_sparrowwallet_lark_bitbox02_generated_BTCPaymentRequestRequest_Memo_TextMemo_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.sparrowwallet.lark.bitbox02.generated.Btc.BTCPaymentRequestRequest.Memo.TextMemo.class, com.sparrowwallet.lark.bitbox02.generated.Btc.BTCPaymentRequestRequest.Memo.TextMemo.Builder.class);
        }

        public static final int NOTE_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object note_ = "";
        /**
         * string note = 1;
         * @return The note.
         */
        @java.lang.Override
        public java.lang.String getNote() {
          java.lang.Object ref = note_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            note_ = s;
            return s;
          }
        }
        /**
         * string note = 1;
         * @return The bytes for note.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getNoteBytes() {
          java.lang.Object ref = note_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            note_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          if (!com.google.protobuf.GeneratedMessage.isStringEmpty(note_)) {
            com


/* Write data into multiple buffers.  Generic version.
   Copyright (C) 2009-2024 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

#include <sys/types.h>

#ifndef __OFF_T_MATCHES_OFF64_T

# define PWRITEV pwritev
# define PWRITE __pwrite
# define OFF_T off_t
# include <sysdeps/posix/pwritev_common.c>

libc_hidden_def (pwritev)

#endif


        IntPtr handle = NativeMethods::FindFirstFile("C:\\*.*", fd);
        Console::WriteLine("The first file: {0}", fd->fileName);
    }
};
//</snippet18>
int main()
{
    App::Main();
}
//</snippet16>
//<snippet3>
using namespace System;
using namespace System::Reflection;

ref class AppDomain5
{
public:
    static void Main()
    {
        // Application domain setup information.
        AppDomainSetup^ domaininfo = gcnew AppDomainSetup();
        domaininfo->ApplicationBase = "f:\\work\\development\\latest";
        domaininfo->ConfigurationFile = "f:\\work\\development\\latest\\appdomain5.exe.config";

        // Creates the application domain.
        AppDomain^ domain = AppDomain::CreateDomain("MyDomain", nullptr, domaininfo);

        // Write the application domain information to the console.
        Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
        Console::WriteLine("Child domain: " + domain->FriendlyName);
        Console::WriteLine();
        Console::WriteLine("Application base is: " + domain->SetupInformation->ApplicationBase);
        Console::WriteLine("Configuration file is: " + domain->SetupInformation->ConfigurationFile);

        // Unloads the application domain.
        AppDomain::Unload(domain);
    }
};

int main()
{
    AppDomain5::Main();
}
//</snippet3>
//<snippet3>
using namespace System;
using namespace System::Reflection;

ref class AppDomain2
{
public:
    static void Main()
    {
        Console::WriteLine("Creating new AppDomain.");
        AppDomain^ domain = AppDomain::CreateDomain("MyDomain", nullptr);

        Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
        Console::WriteLine("child domain: " + domain->FriendlyName);
        AppDomain::Unload(domain);
        try
        {
            Console::WriteLine();
            Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
            // The following statement creates an exception because the domain no longer exists.
            Console::WriteLine("child domain: " + domain->FriendlyName);
        }
        catch (AppDomainUnloadedException^ e)
        {
            Console::WriteLine(e->GetType()->FullName);
            Console::WriteLine("The appdomain MyDomain does not exist.");
        }
    }
};

int main()
{
    AppDomain2::Main();
}
//</snippet3>
#include "System.Private.CoreLib.h"
#include <algorithm>
#include <stdexcept>

using namespace natsu;
using namespace natsu::stack;
using namespace natsu::ops;
using namespace System_Private_CoreLib;
using namespace System_Private_CoreLib::System;
using namespace System_Private_CoreLib::System::Runtime::CompilerServices;

void InitializeHeap() noexcept;

gc_obj_ref<String> natsu::load_string(std::u16string_view string)
{
    auto dest = String::_s_FastAllocateString(string.length());
    std::copy(string.begin(), string.end(), &dest->_firstChar);
    (&dest->_firstChar)[string.length()] = 0;
    return dest;
}

std::u16string_view natsu::to_string_view(gc_obj_ref<String> string)
{
    if (!string)
        return {};
    return { reinterpret_cast<const char16_t *>(&string->_firstChar), (size_t)string->_stringLength };
}

void natsu::throw_null_ref_exception()
{
    throw make_exception(make_object<NullReferenceException>());
}

void natsu::throw_invalid_cast_exception()
{
    throw make_exception(make_object<InvalidCastException>());
}

void natsu::throw_index_out_of


<Expr>, Vec<Expr>),
    Get(Box<Expr>, String),
    Set(Box<Expr>, String, Box<Expr>),
    Array(Vec<Expr>),
    SubscriptGet(Box<Expr>, Box<Expr>),
    SubscriptSet(Box<Expr>, Box<Expr>, Box<Expr>),
    This,
    Super(String),
}

pub type Expr = Located<ExprKind>;
pub type Param = Located<String>;

pub trait Visitor<Res> {
    type Error;
    type Result = std::result::Result<Res, Self::Error>;

    fn visit_literal_expr(&mut self, literal: &LitExpr, loc: Loc) -> Self::Result;

    fn visit_function_expr(&mut self, params: &[Param], body: &[Stmt], loc: Loc) -> Self::Result;

    fn visit_unary_expr(&mut self, op: &UnOp, expr: &Expr, loc: Loc) -> Self::Result;

    fn visit_binary_expr(
        &mut self,
        left: &Expr,
        op: &BinOp,
        right: &Expr,
        loc: Loc,
    ) -> Self::Result;

    fn visit_logical_expr(
        &mut self,
        left: &Expr,
        op: &LogOp,
        right: &Expr,
        loc: Loc,
    ) -> Self::Result;

    fn visit_grouping_expr(&mut self, expr: &Expr, loc: Loc) -> Self::Result;

    fn visit_comma_expr(&mut self, left: &Expr, right: &Expr, loc: Loc) -> Self::Result;

    fn visit_cond_expr(&mut self, cond: &Expr, left: &Expr, right: &Expr, loc: Loc)
        -> Self::Result;

    fn visit_variable_expr(&mut self, name: &str, loc: Loc) -> Self::Result;

    fn visit_assign_expr(&mut self, name: &str, expr: &Expr, loc: Loc) -> Self::Result;

    fn visit_call_expr(&mut self, callee: &Expr, args: &[Expr], loc: Loc) -> Self::Result;

    fn visit_get_expr(&mut self, obj: &Expr, name: &str, loc: Loc) -> Self::Result;

    fn visit_set_expr(&mut self, obj: &Expr, name: &str, expr: &Expr, loc: Loc) -> Self::Result;

    fn visit_array_expr(&mut self, elements: &[Expr], loc: Loc) -> Self::Result;

    fn visit_subscript_get_expr(&mut self, obj: &Expr, index: &Expr, loc: Loc) -> Self::Result;

    fn visit_subscript_set_expr(
        &mut self,
        obj: &Expr,
        index: &Expr,
        expr: &Expr,
        loc: Loc,
    ) -> Self::Result;

    fn visit_this_expr(&mut self, loc: Loc) -> Self::Result;

    fn visit_super_expr(&mut self, method: &str, loc: Loc) -> Self::Result;
}

impl Expr {
    pub fn from_literal(literal: &Literal, loc: Loc) -> Self {
        use Literal::*;
        let kind = ExprKind::Literal(match literal {
            Integer(int) => LitExpr::Integer(*int),
            Float(float) => LitExpr::Float(*float),
            Str(string) => LitExpr::Str(string.clone()),
        });

        Expr::new(kind, loc)
    }

    pub fn integer(int: i64, loc: Loc) -> Self {
        Expr::new(ExprKind::Literal(LitExpr::Integer(int)), loc)
    }

    pub fn boolean(boolean: bool, loc: Loc) -> Self {
        Expr::new(ExprKind::Literal(LitExpr::Boolean(boolean)), loc)
    }

    pub fn nil(loc: Loc) -> Self {
        Expr::new(ExprKind::Literal(LitExpr::Nil), loc)
    }

    pub fn function(params: Vec<Param>, body: Vec<Stmt>, loc: Loc) -> Self {
        Expr::new(ExprKind::Function(params, body), loc)
    }

    pub fn unary(op: Un


$pb.TagNumber(2)
  $core.int get navigation => $_getIZ(1);
  @$pb.TagNumber(2)
  set navigation($core.int value) => $_setUnsignedInt32(1, value);
  @$pb.TagNumber(2)
  $core.bool hasNavigation() => $_has(1);
  @$pb.TagNumber(2)
  void clearNavigation() => $_clearField(2);

  /// Color used on author of a post in discussion threads for it.
  @$pb.TagNumber(3)
  $core.int get author => $_getIZ(2);
  @$pb.TagNumber(3)
  set author($core.int value) => $_setUnsignedInt32(2, value);
  @$pb.TagNumber(3)
  $core.bool hasAuthor() => $_has(2);
  @$pb.TagNumber(3)
  void clearAuthor() => $_clearField(3);

  /// Color used on author for admin posts.
  @$pb.TagNumber(4)
  $core.int get admin => $_getIZ(3);
  @$pb.TagNumber(4)
  set admin($core.int value) => $_setUnsignedInt32(3, value);
  @$pb.TagNumber(4)
  $core.bool hasAdmin() => $_has(3);
  @$pb.TagNumber(4)
  void clearAdmin() => $_clearField(4);

  /// Color used on author for moderator posts.
  @$pb.TagNumber(5)
  $core.int get moderator => $_getIZ(4);
  @$pb.TagNumber(5)
  set moderator($core.int value) => $_setUnsignedInt32(4, value);
  @$pb.TagNumber(5)
  $core.bool hasModerator() => $_has(4);
  @$pb.TagNumber(5)
  void clearModerator() => $_clearField(5);
}

/// Web Push (VAPID) configuration for the server.
class WebPushConfig extends $pb.GeneratedMessage {
  factory WebPushConfig({
    $core.String? publicVapidKey,
    $core.String? privateVapidKey,
  }) {
    final result = create();
    if (publicVapidKey != null) result.publicVapidKey = publicVapidKey;
    if (privateVapidKey != null) result.privateVapidKey = privateVapidKey;
    return result;
  }

  WebPushConfig._();

  factory WebPushConfig.fromBuffer($core.List<$core.int> data, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(data, registry);
  factory WebPushConfig.fromJson($core.String json, [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'WebPushConfig', package: const $pb.PackageName(_omitMessageNames ? '' : 'jonline'), createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'publicVapidKey')
    ..aOS(2, _omitFieldNames ? '' : 'privateVapidKey')
    ..hasRequiredFields = false
  ;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WebPushConfig clone() => WebPushConfig()..mergeFromMessage(this);
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  WebPushConfig copyWith(void Function(WebPushConfig) updates) => super.copyWith((message) => updates(message as WebPushConfig)) as WebPushConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static WebPushConfig create() => WebPushConfig._();
  @$core.override
  WebPushConfig createEmptyInstance() => create();
  static $pb.PbList<WebPushConfig> createRepeated() => $pb.PbList<WebPushConfig>();
  @$core.pragma('dart2js:noInline')
  static WebPushConfig getDefault()


__.1866, 4
__FUNCTION__.1866:
	.string	"plt"
	.type	__FUNCTION__.1862, @object
	.size	__FUNCTION__.1862, 4
__FUNCTION__.1862:
	.string	"bar"
	.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
	.globl	__x86.get_pc_thunk.bx
	.hidden	__x86.get_pc_thunk.bx
	.type	__x86.get_pc_thunk.bx, @function
__x86.get_pc_thunk.bx:
	movl	(%esp), %ebx
	ret
	.section	.text.__x86.get_pc_thunk.cx,"axG",@progbits,__x86.get_pc_thunk.cx,comdat
	.globl	__x86.get_pc_thunk.cx
	.hidden	__x86.get_pc_thunk.cx
	.type	__x86.get_pc_thunk.cx, @function
__x86.get_pc_thunk.cx:
	movl	(%esp), %ecx
	ret


		sl.Info("%s is a log message", "This")
	}
	b.StopTimer()
	os.Remove("benchlog.log")
}

func BenchmarkFileUtilNotLog(b *testing.B) {
	sl := make(Logger)
	b.StopTimer()
	sl.AddFilter("file", INFO, NewFileLogWriter("benchlog.log", false))
	b.StartTimer()
	for i := 0; i < b.N; i++ {
		sl.Debug("%s is a log message", "This")
	}
	b.StopTimer()
	os.Remove("benchlog.log")
}

// Benchmark results (darwin amd64 6g)
//elog.BenchmarkConsoleLog           100000       22819 ns/op
//elog.BenchmarkConsoleNotLogged    2000000         879 ns/op
//elog.BenchmarkConsoleUtilLog        50000       34380 ns/op
//elog.BenchmarkConsoleUtilNotLog   1000000        1339 ns/op
//elog.BenchmarkFileLog              100000       26497 ns/op
//elog.BenchmarkFileNotLogged       2000000         821 ns/op
//elog.BenchmarkFileUtilLog           50000       33945 ns/op
//elog.BenchmarkFileUtilNotLog      1000000        1258 ns/op
// Go MySQL Driver - A MySQL-Driver for Go's database/sql package
//
// Copyright 2014 The Go-MySQL-Driver Authors. All rights reserved.
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
// You can obtain one at http://mozilla.org/MPL/2.0/.

package mysql

const defaultCollation = "utf8_general_ci"

// A list of available collations mapped to the internal ID.
// To update this map use the following MySQL query:
//     SELECT COLLATION_NAME, ID FROM information_schema.COLLATIONS
var collations = map[string]byte{
	"big5_chinese_ci":          1,
	"latin2_czech_cs":          2,
	"dec8_swedish_ci":          3,
	"cp850_general_ci":         4,
	"latin1_german1_ci":        5,
	"hp8_english_ci":           6,
	"koi8r_general_ci":         7,
	"latin1_swedish_ci":        8,
	"latin2_general_ci":        9,
	"swe7_swedish_ci":          10,
	"ascii_general_ci":         11,
	"ujis_japanese_ci":         12,
	"sjis_japanese_ci":         13,
	"cp1251_bulgarian_ci":      14,
	"latin1_danish_ci":         15,
	"hebrew_general_ci":        16,
	"tis620_thai_ci":           18,
	"euckr_korean_ci":          19,
	"latin7_estonian_cs":       20,
	"latin2_hungarian_ci":      21,
	"koi8u_general_ci":         22,
	"cp1251_ukrainian_ci":      23,
	"gb2312_chinese_ci":        24,
	"greek_general_ci":         25,
	"cp1250_general_ci":        26,
	"latin2_croatian_ci":       27,
	"gbk_chinese_ci":           28,
	"cp1257_lithuanian_ci":     29,
	"latin5_turkish_ci":        30,
	"latin1_german2_ci":        31,
	"armscii8_general_ci":      32,
	"utf8_general_ci":          33,
	"cp1250_czech_cs":          34


 HMAC する](https://web.archive.org/web/20210804035343/https://cseweb.ucsd.edu/~mihir/papers/oem.html "Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm") ことができます。

BouncyCastle で HMAC を生成する場合は以下の手順を実行します。

1. BounceyCastle または SpongeyCastle がセキュリティプロバイダとして登録されていることを確認します。
2. HMAC をキーで初期化します (キーはキーストアに格納します) 。
3. HMAC を必要とするコンテンツのバイト配列を取得します。
4. HMAC とバイトコードで `doFinal` を呼び出します。
5. 手順 3 で取得したバイト配列に HMAC を追加します。
6. 手順 5 の結果を保存します。

BouncyCastle で HMAC を検証する場合は以下の手順を実行します。

1. BounceyCastle または SpongeyCastle がセキュリティプロバイダとして登録されていることを確認します。
2. メッセージと HMAC-bytes を個別の配列として抽出します。
3. HMAC を生成する手順 1-4 を繰り返します。
4. 抽出された HMAC-bytes を手順 3 の結果と比較します。

[Android Keystore](https://developer.android.com/training/articles/keystore.html "Android Keystore") に基づいて HMAC を生成する場合、Android 6.0 (API レベル 23) 以上でのみ行うことをお勧めします。

以下は `AndroidKeyStore` を使用しない便利な HMAC 実装です。

```java
public enum HMACWrapper {
    HMAC_512("HMac-SHA512"), //please note that this is the spec for the BC provider
    HMAC_256("HMac-SHA256");

    private final String algorithm;

    private HMACWrapper(final String algorithm) {
        this.algorithm = algorithm;
    }

    public Mac createHMAC(final SecretKey key) {
        try {
            Mac e = Mac.getInstance(this.algorithm, "BC");
            SecretKeySpec secret = new SecretKeySpec(key.getKey().getEncoded(), this.algorithm);
            e.init(secret);
            return e;
        } catch (NoSuchProviderException | InvalidKeyException | NoSuchAlgorithmException e) {
            //handle them
        }
    }

    public byte[] hmac(byte[] message, SecretKey key) {
        Mac mac = this.createHMAC(key);
        return mac.doFinal(message);
    }

    public boolean verify(byte[] messageWithHMAC, SecretKey key) {
        Mac mac = this.createHMAC(key);
        byte[] checksum = extractChecksum(messageWithHMAC, mac.getMacLength());
        byte[] message = extractMessage(messageWithHMAC, mac.getMacLength());
        byte[] calculatedChecksum = this.hmac(message, key);
        int diff = checksum.length ^ calculatedChecksum.length;

        for (int i = 0; i < checksum.length && i < calculatedChecksum.lengt


, height);
        }
    }

    //pub fn set_window_handle<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(&self, window_handle: P) {
    //    unsafe { TODO: call ffi::gst_player_video_overlay_video_renderer_set_window_handle() }
    //}

    pub fn get_property_video_sink(&self) -> Option<gst::Element> {
        unsafe {
            let mut value = Value::from_type(<gst::Element as StaticType>::static_type());
            gobject_ffi::g_object_get_property(self.to_glib_none().0, "video-sink".to_glib_none().0, value.to_glib_none_mut().0);
            value.get()
        }
    }

    pub fn set_property_video_sink<P: IsA<gst::Element> + IsA<glib::object::Object> + glib::value::SetValueOptional>(&self, video_sink: Option<&P>) {
        unsafe {
            gobject_ffi::g_object_set_property(self.to_glib_none().0, "video-sink".to_glib_none().0, Value::from(video_sink).to_glib_none().0);
        }
    }

    //pub fn new<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>>(window_handle: P) -> Option<PlayerVideoRenderer> {
    //    unsafe { TODO: call ffi::gst_player_video_overlay_video_renderer_new() }
    //}

    //pub fn new_with_sink<P: Into<Option</*Unimplemented*/Fundamental: Pointer>>, Q: IsA<gst::Element>>(window_handle: P, video_sink: &Q) -> Option<PlayerVideoRenderer> {
    //    unsafe { TODO: call ffi::gst_player_video_overlay_video_renderer_new_with_sink() }
    //}

    pub fn connect_property_video_sink_notify<F: Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static>(&self, f: F) -> SignalHandlerId {
        unsafe {
            let f: Box_<Box_<Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static>> = Box_::new(Box_::new(f));
            connect(self.to_glib_none().0, "notify::video-sink",
                transmute(notify_video_sink_trampoline as usize), Box_::into_raw(f) as *mut _)
        }
    }

    pub fn connect_property_window_handle_notify<F: Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static>(&self, f: F) -> SignalHandlerId {
        unsafe {
            let f: Box_<Box_<Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static>> = Box_::new(Box_::new(f));
            connect(self.to_glib_none().0, "notify::window-handle",
                transmute(notify_window_handle_trampoline as usize), Box_::into_raw(f) as *mut _)
        }
    }
}

unsafe impl Send for PlayerVideoOverlayVideoRenderer {}
unsafe impl Sync for PlayerVideoOverlayVideoRenderer {}

unsafe extern "C" fn notify_video_sink_trampoline(this: *mut ffi::GstPlayerVideoOverlayVideoRenderer, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer) {
    let f: &&(Fn(&PlayerVideoOverlayVideoRenderer) + Send + Sync + 'static) = transmute(f);
    f(&from_glib_borrow(this))
}

unsafe extern "C" fn notify_window_handle_trampoline(this: *mut ffi::GstPlayerVideoOverlayVideoRenderer, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)