ttom */
#define N25Q128A_SR_SRWREN                   ((uint8_t)0x80)    /*!< Status register write enable/disable */

/* Nonvolatile Configuration Register */
#define N25Q128A_NVCR_LOCK                   ((uint16_t)0x0001) /*!< Lock nonvolatile configuration register */
#define N25Q128A_NVCR_DUAL                   ((uint16_t)0x0004) /*!< Dual I/O protocol */
#define N25Q128A_NVCR_QUAB                   ((uint16_t)0x0008) /*!< Quad I/O protocol */
#define N25Q128A_NVCR_RH                     ((uint16_t)0x0010) /*!< Reset/hold */
#define N25Q128A_NVCR_ODS                    ((uint16_t)0x01C0) /*!< Output driver strength */
#define N25Q128A_NVCR_XIP                    ((uint16_t)0x0E00) /*!< XIP mode at power-on reset */
#define N25Q128A_NVCR_NB_DUMMY               ((uint16_t)0xF000) /*!< Number of dummy clock cycles */

/* Volatile Configuration Register */
#define N25Q128A_VCR_WRAP                    ((uint8_t)0x03)    /*!< Wrap */
#define N25Q128A_VCR_XIP                     ((uint8_t)0x08)    /*!< XIP */
#define N25Q128A_VCR_NB_DUMMY                ((uint8_t)0xF0)    /*!< Number of dummy clock cycles */

/* Enhanced Volatile Configuration Register */
#define N25Q128A_EVCR_ODS                    ((uint8_t)0x07)    /*!< Output driver strength */
#define N25Q128A_EVCR_VPPA                   ((uint8_t)0x08)    /*!< Vpp accelerator */
#define N25Q128A_EVCR_RH                     ((uint8_t)0x10)    /*!< Reset/hold */
#define N25Q128A_EVCR_DUAL                   ((uint8_t)0x40)    /*!< Dual I/O protocol */
#define N25Q128A_EVCR_QUAD                   ((uint8_t)0x80)    /*!< Quad I/O protocol */

/* Flag Status Register */
#define N25Q128A_FSR_PRERR                   ((uint8_t)0x02)    /*!< Protection error */
#define N25Q128A_FSR_PGSUS                   ((uint8_t)0x04)    /*!< Program operation suspended */
#define N25Q128A_FSR_VPPERR                  ((uint8_t)0x08)    /*!< Invalid voltage during program or erase */
#define N25Q128A_FSR_PGERR                   ((uint8_t)0x10)    /*!< Program error */
#define N25Q128A_FSR_ERERR                   ((uint8_t)0x20)    /*!< Erase error */
#define N25Q128A_FSR_ERSUS                   ((uint8_t)0x40)    /*!< Erase operation suspended */
#define N25Q128A_FSR_READY                   ((uint8_t)0x80)    /*!< Ready or command in progress */

/**
  * @}
  */

/** @defgroup N25Q128A_Exported_Functions
  * @{
  */
/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

#ifdef __cplusplus
}
#endif

#endif /* __N25Q128A_H */


3560 },
	{ itemName = "sage gem", clientId = 44609, sell = 5000 },
	{ itemName = "scarab coin", clientId = 3042, sell = 100 },
	{ itemName = "silver goblet", clientId = 5806, buy = 3000 },
	{ itemName = "skull coin", clientId = 32583, sell = 12000 },
	{ itemName = "small amethyst", clientId = 3033, buy = 400, sell = 200 },
	{ itemName = "small diamond", clientId = 3028, buy = 600, sell = 300 },
	{ itemName = "small emerald", clientId = 3032, buy = 500, sell = 250 },
	{ itemName = "small enchanted amethyst", clientId = 678, sell = 200 },
	{ itemName = "small enchanted emerald", clientId = 677, sell = 250 },
	{ itemName = "small enchanted ruby", clientId = 676, sell = 250 },
	{ itemName = "small enchanted sapphire", clientId = 675, sell = 250 },
	{ itemName = "small ruby", clientId = 3030, buy = 500, sell = 250 },
	{ itemName = "small sapphire", clientId = 3029, buy = 500, sell = 250 },
	{ itemName = "small topaz", clientId = 9057, sell = 200 },
	{ itemName = "tiger eye", clientId = 2496


Network()
    {
        base.FixedUpdateNetwork();

        if (GetInput<PlayerInputData>(out var inputData))
        {
            transform.Translate(inputData.direction*Runner.DeltaTime * moveSpeed);
        }
    }

    // Update is called once per frame
    void Update()
    {

    }
}


.........................................................................
revers_bits
	movea.l	-10(a4),a3		; Start image destination
    	clr.l	d0
    	move.b	-6(a4),d0      		; Mask
    	bsr.s	L2AFE8			; Start line 0

*    	movea.l	-10(a4),a2
    	adda.w	d7,a3       		; skip a line
    	clr.l	d0
    	move.b	-5(a4),d0
    	bsr.s	L2AFE8			; Start line 1

    	bra 	_end
;..................................
L2AFE8:	movea.l	a3,a2
	move.w	d0,d1
	lsl.w	#8,d1			; $ff00 or $0000  or $xxxx
	or.w	d1,d0
	move.w	-4(a4),d1		; 25
	asl.w	#3,d1
	bra.s	_bl_1

L_d1:	movea.l	a2,a1
	lea.l	160(a1),a2
*	adda.w	d7,a2			; next line +80 bytes
*	adda.w	d7,a2			; next line +80 bytes
	move.w	-2(a4),d2		; 40
	bra.s	_bl_2

l_d2:	eor.w	d0,(a1)+
_bl_2	dbra.w	d2,l_d2 		 ; 40 words
_bl_1:	dbra.w	d1,L_d1
	rts

	end
;-------------------------------------------------------------------------


~= gfx.pointsize_set then
    pgf.set_pointsize(gfx.pointsize)
    gfx.pointsize_set = gfx.pointsize
  end
end

gfx.start_path = function(x, y)
  --  init path with first coords
  gfx.path = {{x,y}}
  gfx.posx = x
  gfx.posy = y
end

-- ctype  string  LT|RGBA|GRAY
-- val   table   {name}|{r,g,b,alpha}
-- returns a properly formatted color parameter string, or nil if LT_NODRAW was used.
gfx.format_color = function(ctype, val)
  local c
  if ctype == 'LT' then
    if val[1] < 0 then
      if val[1] == -3 then
        c = nil
      elseif val[1] < -2 then --  LT_NODRAW, LT_BACKGROUND, LT_UNDEFINED
        c = 'color=gpbgfillcolor'
      else
        c = 'color='..pgf.styles.lt_colors_axes[math.abs(val[1])][1]
      end
    else
      c = 'color='..pgf.styles.lt_colors[(val[1] % #pgf.styles.lt_colors)+1][1]
    end
    -- c = pgf.styles.lt_colors[((val[1]+3) % #pgf.styles.lt_colors) + 1][1]
  elseif ctype == 'RGBA' then
    c = string.format("rgb color={%.3f,%.3f,%.3f}", val[1], val[2], val[3])
  elseif ctype == 'GRAY' then
    c = string.format("color=black!%i", math.floor(100*val[1]+0.5))
  end
  return c
end

gfx.set_opacity = function(ctype, val)
  gfx.opacity = 1.0
  if (ctype == 'RGBA') then
     gfx.opacity = val[4]
  end
end

gfx.set_color = function(ctype, val)
  gfx.color = gfx.format_color(ctype, val)
  gfx.set_opacity(ctype, val)
end

--[[===============================================================================================

  The terminal layer

  The term.* functions are usually called from the gnuplot Lua terminal

]]--===============================================================================================

if arg then
  -- when called from the command line we have
  -- to initialize the table `term' manually
  -- to avoid errors
  term = {}
else
  --
  -- gnuplot terminal default parameters and flags
  --
  term.xmax = pgf.DEFAULT_RESOLUTION * pgf.DEFAULT_CANVAS_SIZE_X
  term.ymax = pgf.DEFAULT_RESOLUTION * pgf.DEFAULT_CANVAS_SIZE_Y
  term.h_tic =  pgf.DEFAULT_RESOLUTION * pgf.DEFAULT_TIC_SIZE
  term.v_tic =  pgf.DEFAULT_RESOLUTION * pgf.DEFAULT_TIC_SIZE
  -- default size for CM@10pt
  term.h_char = math.floor(pgf.DEFAULT_FONT_H_CHAR * (pgf.DEFAULT_FONT_SIZE/10) * (pgf.DEFAULT_RESOLUTION/1000) + .5)
  term.v_char = math.floor(pgf.DEFAULT_FONT_V_CHAR * (pgf.DEFAULT_FONT_SIZE/10) * (pgf.DEFAULT_RESOLUTION/1000) + .5)
  term.description = "Lua PGF/TikZ terminal for TeX and friends"
  term_default_flags = term.TERM_BINARY + term.TERM_CAN_MULTIPLOT + term.TERM_CAN_DASH + term.TERM_ALPHA_CHANNEL
                       + term.TERM_LINEWIDTH + term.TERM_IS_LATEX + term.TERM_FONTSCALE
  term.flags = term_default_flags + term.TERM_CAN_CLIP
end

--
-- initial = 1  for the initial "set term" call
--           0  for subsequent option changes -- currently unused, sinc


 column: 9, length: 5, analyzerError: "some.error"),
    makeError(line: 1, column: 9, length: 5, cfeError: "Bad."),
    makeError(line: 3, column: 15, length: 7, cfeError: "Another bad."),
    makeError(line: 3, column: 15, length: 7, webError: "Web.\nError."),
    makeError(line: 5, column: 13, length: 5, analyzerError: "third.error"),
    makeError(line: 5, column: 13, length: 5, webError: "Web error."),
    makeError(line: 7, column: 12, length: 6, analyzerError: "last.error"),
    makeError(line: 7, column: 12, length: 6, cfeError: "Final.\nError."),
    makeError(line: 7, column: 12, length: 6, webError: "Web error."),
  ], expected: """
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error
/\/ [cfe] Bad.

int another = "wrong";
/\/            ^^^^^^^
/\/ [cfe] Another bad.
/\/ [web] Web.
/\/ Error.

int third = "boo";
/\/          ^^^^^
/\/ [analyzer] third.error
/\/ [web] Web error.

int last = "oops";
/\/         ^^^^^^
/\/ [analyzer] last.error
/\/ [cfe] Final.
/\/ Error.
/\/ [web] Web error.
""");

  // Removes only analyzer errors.
  expectUpdate("""
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error

int another = "wrong";
/\/            ^^^^^^^
/\/ [cfe] Bad.

int third = "boo";
/\/          ^^^^^
/\/ [analyzer] an.error
/\/ [cfe] Wrong.
""", remove: {ErrorSource.analyzer}, expected: """
int i = "bad";

int another = "wrong";
/\/            ^^^^^^^
/\/ [cfe] Bad.

int third = "boo";
/\/          ^^^^^
/\/ [cfe] Wrong.
""");

  // Removes only CFE errors.
  expectUpdate("""
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error

int another = "wrong";
/\/            ^^^^^^^
/\/ [cfe] Bad.

int third = "boo";
/\/          ^^^^^
/\/ [analyzer] an.error
/\/ [cfe] Wrong.
""", remove: {ErrorSource.cfe}, expected: """
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error

int another = "wrong";

int third = "boo";
/\/          ^^^^^
/\/ [analyzer] an.error
""");

  // Removes only web errors.
  expectUpdate("""
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error

int another = "wrong";
/\/            ^^^^^^^
/\/ [web] Bad.

int third = "boo";
/\/          ^^^^^
/\/ [cfe] Error.
/\/ [web] Wrong.
""", remove: {ErrorSource.web}, expected: """
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error

int another = "wrong";

int third = "boo";
/\/          ^^^^^
/\/ [cfe] Error.
""");

  // Removes multiple error sources.
  expectUpdate("""
int i = "bad";
/\/      ^^^^^
/\/ [analyzer] some.error
/\/ [cfe] CFE error.

int another = "wrong";
/\/            ^^^^^^^
/\/ [web] Bad.

int third = "boo";
/\/          ^^^^^
/\/ [analyzer] another.error
/\/ [cfe] Error.
/\/ [web] Wrong.
""", remove: {ErrorSource.analyzer, ErrorSource.web}, expected: """
int i = "bad";
/\/      ^^^^^
/\/ [cfe] CFE error.

int another = "wrong";

int third = "boo";
/\/          ^^^^^
/\/ [cfe] Error.
""");

  // Preserves previous error's indentation if possible.
  expectUpdate("""
int i = "bad";
    /\/


 abcd2y = interpolate(abc2y, bcd2y, endT);
  buffer[0] = abcd1x;
  buffer[1] = abcd1y;
  buffer[2] = ab2x;
  buffer[3] = ab2y;
  buffer[4] = abc2x;
  buffer[5] = abc2y;
  buffer[6] = abcd2x;
  buffer[7] = abcd2y;
}
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:async';

import 'package:meta/meta.dart';
import 'package:ui/src/engine/dom.dart';
import 'package:ui/src/engine/view_embedder/display_dpr_stream.dart';
import 'package:ui/src/engine/window.dart';
import 'package:ui/ui.dart' as ui show Size;

import 'custom_element_dimensions_provider.dart';
import 'full_page_dimensions_provider.dart';

/// This class provides the dimensions of the "viewport" in which the app is rendered.
///
/// Similarly to the `EmbeddingStrategy`, this class is specialized to handle
/// different sources of information:
///
/// * [FullPageDimensionsProvider] - The default behavior, uses the VisualViewport
///   API to measure, and react to, the dimensions of the full browser window.
/// * [CustomElementDimensionsProvider] - Uses a custom html Element as the source
///   of dimensions, and the ResizeObserver to notify the app of changes.
///
/// All the measurements returned from this class are potentially *expensive*,
/// and should be cached as needed. Every call to every method on this class
/// WILL perform actual DOM measurements.
abstract class DimensionsProvider {
  DimensionsProvider();

  /// Creates the appropriate DimensionsProvider depending on the incoming [hostElement].
  factory DimensionsProvider.create({DomElement? hostElement}) {
    if (hostElement != null) {
      return CustomElementDimensionsProvider(
        hostElement,
        onDprChange: DisplayDprStream.instance.dprChanged,
      );
    } else {
      return FullPageDimensionsProvider();
    }
  }

  /// Returns the [ui.Size] of the "viewport".
  ///
  /// This function is expensive. It triggers browser layout if there are
  /// pending DOM writes.
  ui.Size computePhysicalSize();

  /// Returns the [ViewPadding] of the keyboard insets (if present).
  ViewPadding computeKeyboardInsets(
    double physicalHeight,
    bool isEditingOnMobile,
  );

  /// Returns a Stream with the changes to [ui.Size] (when cheap to get).
  ///
  /// Currently this Stream always returns `null` measurements because the
  /// resize event that we use for [FullPageDimensionsProvider] does not contain
  /// the new size, so users of this Stream everywhere immediately retrieve the
  /// new `physicalSize` from the window.
  ///
  /// The [CustomElementDimensionsProvider] *could* broadcast the new size, but
  /// to keep both implementations consistent (and their consumers), for now all
  /// events from this Stream are going to be `null` (until we find a performant
  /// way to retrieve the dimensions in full-page mode).
  Stream<ui.Size?> get onResize;

  /// Whether the [DimensionsProvider] instance has been closed or not.
  @visibleForTesting
  bool isClosed = false;

  /// Clears any resources grabbed by the DimensionsProvider instance.
  ///
  /// All internal event handlers will be disconnected, and the [onResize] Stream
  /// will be closed.
  @mustCallSuper
  void close() {
    isClosed = true;
  }
}
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:ui/src/engine/dom.dart';
import 'package:ui/src/engine/util.dart' show


{top:-100px}body.gh-banner-active.docked .header.hover.open,body.gh-banner-active.docked .header.open{top:-40px}body.gh-banner-double-active .header{top:-171px}body.gh-banner-double-active.docked .header{top:-151px}body.gh-banner-double-active.docked .header.hover{top:-141px}body.gh-banner-double-active.docked .header.hover.open,body.gh-banner-double-active.docked .header.open{top:-81px}#removeNLIwarning,#watchNLIwarning,#watchwarning{position:absolute;width:530px}#clnw-overlay{-ms-filter:"alpha(opacity=60)";background:#000;filter:"alpha(opacity=60)";height:100%;left:0;opacity:.6;position:fixed;top:0;width:100%;z-index:99999}#clnw-modal{background:#fff;border-radius:4px;padding:1px;position:absolute;z-index:999999}#clnw-close{background:url(//ir.ebaystatic.com/f/31o2aa33i23updwyf5obbywfwam.png) -340px -125px no-repeat;display:block;height:16px;position:absolute;right:20px;text-indent:-9999px;top:20px;width:16px}#colwContainer{background-color:#fff;border-radius:3px;box-shadow:rgba(0,0,0,0.3) 5px 5px 5px;float:left;min-height:245px}.clnwItemTempl{max-width:962px;min-width:525px}#colwContainer .colWrapper{float:left;padding:20px 20px 88px 28px}#colwContainer .lnSeporator{border-bottom:1px solid #ccc;margin:16px 0 0}#colwContainer .addError{color:#f00;display:none;font-family:Arial;margin-top:5px}.colwThrobber{background:url("//ir.ebaystatic.com/pictures/aw/eBay3.0/lensing/throbber_45px.gif") no-repeat scroll 0 0 #fff;margin:auto;margin-top:100px;padding-top:50px;width:45px}#colwHeader{color:#555;font-family:Helvetica,Arial,Sans-serif;font-weight:400;font-size:24px}#colwColumn1{float:left;margin-right:35px;margin-top:30px}#colwColumn1 .viewPort{background-color:#fff;border:1px solid #d9d9d9;display:table-cell;height:265px;margin:0 auto;text-align:center;vertical-align:middle;width:265px}#colwColumn1 .viewPort img{display:block;margin:auto;max-height:265px;max-width:265px}#colwColumn2{float:left;width:600px}.colwItem{color:#777;float:left;font-family:"Helvetica neue",Helvetica,Arial,Sans-serif;font-weight:400;font-size:15px;line-height:17px;margin-top:30px;margin-bottom:12px;width:600px}#colwColumn2 .dottedLnSeporator{border-bottom:1px solid #ddd;margin:8px 0 32px 0;width:100%}.colwPicker{background-image:linear-gradient(to bottom,#fefefe,#fafafa);border:1px solid #ddd;border-radius:3px 3px 3px 3px;box-shadow:0 1px 1px #fff inset,0 1px #ddd;color:#555;cursor:hand;cursor:pointer;display:block;font-family:Arial;font-size:16px;font-weight:600;height:15px;padding:10px 24px 10px 18px;position:relative;text-shadow:1px 1px 1px rgba(255,255,255,0.7)}.colwPicker:hover{border-color:#aaa;box-shadow:none}.colwPicker


options.dart';

/// dropDatabase command.
///
/// The dropDatabase command drops the current database,
/// deleting the associated data files.
///
/// The command accepts the following fields:
/// - db [Db]
///   The database to be dropped
/// - dropDatabaseOptions [DropDatabaseOptions] - Optional
///   a set of optional values for the command
/// - rawOption [Map]
///   An alternative way to dropDatabaseOptions to specify command options
///   (must be manually set)
class DropDatabaseCommand extends CommandOperation {
  DropDatabaseCommand(Db db,
      {DropDatabaseOptions? dropDatabaseOptions,
      Map<String, Object>? rawOptions})
      : super(db, <String, Object>{
          ...?dropDatabaseOptions?.getOptions(db),
          ...?rawOptions
        }, command: <String, Object>{
          keyDropDatabase: 1,
        });
}
import 'package:fixnum/fixnum.dart';
import 'package:mongo_dart/src/database/commands/mixin/basic_result.dart';
import 'package:mongo_dart/src/database/utils/map_keys.dart';

class KillCursorsResult with BasicResult {
  KillCursorsResult(Map<String, dynamic> document) {
    extractBasic(document);
    var docs = document[keyCursorsKilled] as List?;
    if (docs != null && docs.isNotEmpty) {
      cursorsKilled = <Int64>[];
      for (var cursorKilled in docs) {
        cursorsKilled!.add(cursorKilled);
      }
    }

    docs = document[keyCursorsNotFound] as List?;
    if (docs != null && docs.isNotEmpty) {
      cursorsNotFound = <Int64>[];
      for (var cursorNotFound in docs) {
        cursorsNotFound!.add(cursorNotFound);
      }
    }

    docs = document[keyCursorsAlive] as List?;
    if (docs != null && docs.isNotEmpty) {
      cursorsAlive = <Int64>[];
      for (var cursorAlive in docs) {
        cursorsAlive!.add(cursorAlive);
      }
    }

    docs = document[keyCursorsUnknown] as List?;
    if (docs != null && docs.isNotEmpty) {
      cursorsUnknown = <Int64>[];
      for (var cursorUnknown in docs) {
        cursorsUnknown!.add(cursorUnknown);
      }
    }
  }

  List<Int64>? cursorsKilled;
  List<Int64>? cursorsNotFound;
  List<Int64>? cursorsAlive;
  List<Int64>? cursorsUnknown;
}
import 'package:mongo_dart/mongo_dart.dart';

class UpdateStatement {
  UpdateStatement(this.q, this.u,
      {bool? upsert,
      bool? multi,
      this.collation,
      this.arrayFilters,
      this.hint,
      this.hintDocument})
      : upsert = upsert ?? false,
        multi = multi ?? false {
    if (arrayFilters != null && arrayFilters is! List && arrayFilters is! Map) {
      throw MongoDartError(
          'The arrayFilters parameter must be either a List or a Map');
    }
  }

  /// The query that matches documents to update.
  /// Use the same query selectors as used in the find() method.
  Map<String, dynamic> q;

  /// The modifications to apply.
  ///
  /// The value can be either:
  /// - A Map that contains update operator expressions,
  /// - A replacement document with only <field1>: <value1> pairs, or
  /// - Starting in MongoDB 4.2, an aggregation pipeline.
  ///   * `$addFields` and its alias `$set`
  ///   * `$project` and its alias `$unset`
  ///   * `$replaceRoot` and its alias `$replaceWith`.
  Object u;

  /// If true, perform an insert if no documents match the query.
  /// If both upsert and multi are true and no documents match the query,
  /// the update operation inserts only a single document.
  bool upsert = false;

  /// If true, updates all documents that meet the query criteria.
  /// If false, lim


Er|');
    assertEq('a\\/b', Util512.escapeForRegex('a/b'), 'Eq|');
    assertEq('\\+', Util512.escapeForRegex('+'), 'Ep|');
    assertEq('a\\+b', Util512.escapeForRegex('a+b'), 'Eo|');
    assertEq('\\+\\+', Util512.escapeForRegex('++'), 'En|');
    assertEq('a\\+\\+b', Util512.escapeForRegex('a++b'), 'Em|');
});
t.test('EscapeForRegex.Consecutive', () => {
    assertEq('', Util512.escapeForRegex(''), 'El|');
    assertEq('abc', Util512.escapeForRegex('abc'), 'Ek|');
    assertEq('\\[abc\\]', Util512.escapeForRegex('[abc]'), 'Ej|');
    assertEq('123\\[abc\\]456', Util512.escapeForRegex('123[abc]456'), 'Ei|');
    assertEq('\\.\\.', Util512.escapeForRegex('..'), 'Eh|');
    assertEq('\\|\\|', Util512.escapeForRegex('||'), '');
    assertEq('\\[\\[', Util512.escapeForRegex('[['), 'Eg|');
    assertEq('\\]\\]', Util512.escapeForRegex(']]'), 'Ef|');
    assertEq('\\(\\(', Util512.escapeForRegex('(('), 'Ee|');
    assertEq('\\)\\)', Util512.escapeForRegex('))'), 'Ed|');
    assertEq('\\/\\/', Util512.escapeForRegex('//'), 'Ec|');
    assertEq('\\\\\\\\', Util512.escapeForRegex('\\\\'), 'Eb|');
});
t.test('capitalizeFirst.NonAlphabet', () => {
    assertEq('', Util512.capitalizeFirst(''), 'E*|');
    assertEq('1', Util512.capitalizeFirst('1'), 'E)|');
    assertEq('0123', Util512.capitalizeFirst('0123'), 'E(|');
    assertEq('\t1', Util512.capitalizeFirst('\t1'), 'E&|');
    assertEq(' 1', Util512.capitalizeFirst(' 1'), 'E%|');
    assertEq('!@#1', Util512.capitalizeFirst('!@#1'), 'E$|');
});
t.test('capitalizeFirst.Alphabet', () => {
    assertEq('A', Util512.capitalizeFirst('a'), 'E#|');
    assertEq('Abc', Util512.capitalizeFirst('abc'), 'E!|');
    assertEq('Def ghi', Util512.capitalizeFirst('def ghi'), 'E |');
    assertEq('A', Util512.capitalizeFirst('A'), 'Ez|');
    assertEq('ABC', Util512.capitalizeFirst('ABC'), 'Ey|');
    assertEq('DEF ghi', Util512.capitalizeFirst('DEF ghi'), 'Ex|');
});
t.test('callAsMethod.BadCharInMethodName', () => {
    let o = new TestClsWithMethods();
    assertThrows('Lo|', 'requires alphanumeric', () =>
        Util512.callAsMethodOnClass(TestClsWithMethods.name, o, '', [true, 1], true)
    );

    assertThrows('Ln|', 'requires alphanumeric', () =>
        Util512.callAsMethodOnClass(TestClsWithMethods.name, o, 'a b', [true, 1], true)
    );

    assertThrows('Lm|', 'requires alphanumeric', () =>
        Util512.callAsMethodOnClass(TestClsWithMethods.name, o, 'a', [true, 1], true)
    );

    assertThrows('Ll|', 'requires alphanumeric', () =>
        Util512.callAsMethodOnClass(TestClsWithMethods.name, o, '?', [true, 1], true)
    );

    assertThrows('Lk|', 'requires alphanumeric', () =>
        Util512


ui_manager = Managers.ui

		if ui_manager then
			ui_manager:update_client_loadout_waiting_state(true)
		end

		Managers.connection:send_rpc_server("rpc_notify_profile_changed", peer_id, local_player_id)
	end
end

CharacterCreate._fetch_crime_items = function (self)
	local player = Managers.player:local_player(1)
	local character_id = player:character_id()
	local body_gear_slots = {}

	body_gear_slots[1] = "slot_gear_lowerbody"
	body_gear_slots[2] = "slot_gear_upperbody"

	local gear_service = Managers.data_service.gear

	return gear_service:fetch_inventory(character_id, body_gear_slots):next(function (items)
		if self._destroyed then
			return
		end

		self._body_gear_items = items

		local crime_items = {}

		for id, item in pairs(items) do
			local master_item = item.__master_item

			if master_item then
				local item_name = master_item.name
				local crimes = master_item.crimes

				if crimes and not table.is_empty(crimes) then
					crime_items[item_name] = id
				end
			end
		end

		return crime_items
	end):catch(function ()
		Managers.event:trigger("event_add_notification_message", "alert", {
			text = Localize("loc_popup_description_backend_error"),
		})
		self:cb_on_close_pressed()
	end)
end

CharacterCreate._get_current_crime_items_ids = function (self, crime_items)
	local items = {}
	local crime = self:crime()
	local crime_id = crime.is_diff_archetype
	local crime_settings = Crimes[crime_id]

	if crime_settings ~= nil then
		local slot_items = crime_settings.slot_items

		if slot_items then
			for slot_name, item_name in pairs(slot_items) do
				for master_item_name, id in pairs(crime_items) do
					if item_name == master_item_name then
						items[slot_name] = id


li class="mr-3 mr-lg-0">Contact GitHub

Pricing

API

Training

Blog

About

    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
    </button>
    You can’t perform that action at this time.

    <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.


g0IDAuNjgyIDAuODQgMC42ODIgMi4zMSAwIDEuNDctMC43MDQgMi40Mi0wLjcwNCAwLjg4Mi0xLjg5IDAuODgyLTEuMjYgMC0xLjg5LTEuMDJ2MC43NjZoLTAuODV6bTIuNjIgMy4wNHEtMC43NDYgMC0xLjE2IDAuNjQtMC40NTIgMC42My0wLjQ1MiAxLjY4IDAgMS4wNSAwLjQ1MiAxLjY4dDEuMTYgMC42M3EwLjc3NyAwIDEuMjYtMC42MyAwLjQ5NC0wLjY0IDAuNDk0LTEuNjggMC0xLjA1LTAuNDcyLTEuNjgtMC40NjItMC42NC0xLjI2LTAuNjR6IiBzdHJva2Utd2lkdGg9IjEuMDUiLz4KICA8cGF0aCBkPSJtMi43MyAxNS44IDEzLjYgMC4wMDgxYzAuMDA2OSAwIDAtMi42IDAtMi42IDAtMC4wMDc4LTEuMTUgMC0xLjE1IDAtMC4wMDY5IDAtMC4wMDgzIDEuNS0wLjAwODMgMS41LTJlLTMgLTAuMDAxNC0xMS4zLTAuMDAxNC0xMS4zLTAuMDAxNGwtMC4wMDU5Mi0xLjVjMC0wLjAwNzgtMS4xNyAwLjAwMTMtMS4xNyAwLjAwMTN6IiBzdHJva2Utd2lkdGg9Ii45NzUiLz4KIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-yaml: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1jb250cmFzdDIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjRDgxQjYwIj4KICAgIDxwYXRoIGQ9Ik03LjIgMTguNnYtNS40TDMgNS42aDMuM2wxLjQgMy4xYy4zLjkuNiAxLjYgMSAyLjUuMy0uOC42LTEuNiAxLTIuNWwxLjQtMy4xaDMuNGwtNC40IDcuNnY1LjVsLTIuOS0uMXoiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxNi41IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxMSIgcj0iMi4xIi8+CiAgPC9nPgo8L3N2Zz4K);
}

/* Icon CSS class declarations */

.jp-AddAboveIcon {
  background-image: var(--jp-icon-add-above);
}

.jp-AddBelowIcon {
  background-image: var(--jp-icon-add-below);
}

.jp-AddIcon {
  background-image: var(--jp-icon-add);
}

.jp-BellIcon {
  background


.needRegenerate"/><#else><@s.m "content.static.hasGenerated"/></#if>
	</@p.column><#t/>
	<@p.column code="global.operate" align="center">
		<#assign params>&cid=${cid!}&pageNo=${pageNo!}&queryTitle=${queryTitle!?url}&queryInputUsername=${queryInputUsername!?url}&queryTopLevel=${(queryTopLevel!false)?string}&queryRecommend=${(queryRecommend!false)?string}&queryTypeId=${queryTypeId!}&queryStatus=${queryStatus!}&queryOrderBy=${queryOrderBy!}</#assign>
		<@cms_perm url="/content/v_view.do">
		<@s.m "content.opt.view"/> | <#rt/>
		</@cms_perm>
		<@cms_perm url="/content/v_edit.do">
		<@s.m "global.edit"/> | <#rt/>
		</@cms_perm>
		<@cms_perm url="/content/o_delete.do">
		<#if content.hasDeleteRight><a href="o_delete.do?ids=${content.id}${params}" onclick="if(!confirm('<@s.m "global.confirm.delete"/>')) {return false;}" class="pn-opt"><@s.m "global.delete"/>
		<#else><@s.m "global.delete"/>
		</#if>
		</@cms_perm><#t/>
	</@p.column><#t/>
</@p.table>

	<@cms_perm url="/content/o_delete.do">
	<input type="button" value="<@s.m "global.delete"/>" onclick="optDelete();" class="del-button"/>
	</@cms_perm>
	<@cms_perm url="/content/o_check.do">
	<input type="button" value="<@s.m "content.opt.check"/>" onclick="optCheck();" class="check"/>
	</@cms_perm>
	<@cms_perm url="/content/o_reject.do">
	<input id="rejectButton" type="button" value="<@s.m "content.opt.reject"/>" onclick="optReject();" class="reject"/>
	</@cms_perm>
	<@cms_perm url="/content/o_static.do">
	<input type="button" value="<@s.m "content.opt.static"/>" onclick="optStatic();" class="generate-static"/>
	</@cms_perm>

</form>

<div id="rejectDialog" style="display:none" title="<@s.m "content.rejectOpinion"/>">

<@s.m "content.rejectOpinion"/>: <input type="text" id="rejectOpinion" style="width:260px" onkeypress="if(event.keyCode==13){rejectSubmit();return false;}"/>

<@s.m "content.rejectStep"/>:
	<select id="rejectStep">
		<option value=""><@s.m "content.rejectBack"/></option>
		<#list currStep-1..0 as i><option value="${i}">${i}</option></#list>
	</select>

<#include "/common/alert_message.html"/>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title></title>
<#include "/${admin_dir}/head.html"/>


v-719dc418]:not(.hide-sport):hover:not(.hide-activity):after {
    content: "";
    display: flex;
    width: 6px;
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
    background: linear-gradient(180deg, #fbd03b, #fa7800 73.96%);
    border-radius: 0 3px 3px 0
}

.left-menu-wrapper .left-menu-content>ul li:not(.hide-sport).hide-lang[data-v-719dc418] .multiLanguage .no_select,
.left-menu-wrapper .left-menu-content>ul li:not(.hide-sport).hide-lang[data-v-719dc418] .multiLanguage i {
    display: none
}

.left-menu-wrapper .left-menu-content .sidebar-hide[data-v-719dc418] {
    margin-top: 16px
}

.left-menu-wrapper .left-menu-content .sidebar-hide ul[data-v-719dc418] {
    position: relative
}

.left-menu-wrapper .left-menu-content .sidebar-hide ul[data-v-719dc418]:not(.activity) {
    padding: 35px 0
}

.left-menu-wrapper .left-menu-content .sidebar-hide ul[data-v-719dc418]:not(.activity):not(:last-child):after {
    content: "";
    display: flex;
    width: 70%;
    height: 2px;
    background: #2f3645;
    position: absolute;
    bottom: 0;
    left: 8px
}

.left-menu-wrapper .left-menu-content .sidebar-hide span[data-v-719dc418] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%
}

.left-menu-wrapper .left-menu-content .sidebar-hide span img[data-v-719dc418] {
    width: 100%
}

.left-menu-wrapper .left-menu-content .sidebar-hide li.hide-activity[data-v-719dc418] {
    width: 100% !important;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(102.41deg, rgba(252, 51, 104, .9) 2.22%, rgba(34, 40, 53, .9) 98.13%);
    border-radius: 0 12px 12px 0;
    padding: 3px
}

.left-menu-wrapper .left-menu-content .sidebar-hide li.hide-activity[data-v-719dc418]:not(:last-child) {
    margin-bottom: 10px
}

.left-menu-wrapper .left-menu-content .sidebar-hide li.hide-activity img[data-v-719dc418] {
    width: 40px
}

.left-menu-wrapper .left-menu-content .sidebar-hide li.hide-activity[data-v-719dc418]:nth-child(2) {
    width: 40px;
    background: linear-gradient(102.41deg, rgba(119, 61, 211, .9) 2.22%, rgba(34, 40, 53, .9) 98.13%)
}

.left-menu-wrapper .left-menu-content .sidebar-hide li.hide-activity[data-v-719dc418]:nth-child(3) {
    background: linear-gradient(102.41deg, rgba(60, 187, 120, .9) 2.22%, rgba(34, 40, 53, .9) 98.13%)
}

.left-menu-wrapper .left-menu-content .sidebar-hide li.hide-activity[data-v-719dc418]:nt


dule(xyz_sampled[app_mask], viewdirs[app_mask], app_features)
            rgb[app_mask] = valid_rgbs

        acc_map = torch.sum(weight, -1)
        rgb_map = torch.sum(weight[..., None] * rgb, -2)

        if white_bg or (is_train and torch.rand((1,)) < 0.5):
            rgb_map = rgb_map + (1. - acc_map[..., None])

        rgb_map = rgb_map.clamp(0, 1)

        with torch.no_grad():
            depth_map = torch.sum(weight * z_vals, -1)
            depth_map = depth_map + (1. - acc_map) * rays_chunk[..., -1]

        return rgb_map, depth_map  # rgb, sigma, alpha, weight, bg_weight


0, 0x54(r1)
/* 8019C2FC 00197F5C  7C 08 03 A6 */	mtlr r0
/* 8019C300 00197F60  38 21 00 50 */	addi r1, r1, 0x50
/* 8019C304 00197F64  4E 80 00 20 */	blr

.global func_8019C308
func_8019C308:
/* 8019C308 00197F68  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8019C30C 00197F6C  7C 08 02 A6 */	mflr r0
/* 8019C310 00197F70  90 01 00 54 */	stw r0, 0x54(r1)
/* 8019C314 00197F74  39 61 00 50 */	addi r11, r1, 0x50
/* 8019C318 00197F78  48 02 AE 05 */	bl _savegpr_24
/* 8019C31C 00197F7C  7C 78 1B 78 */	mr r24, r3
/* 8019C320 00197F80  7C 99 23 78 */	mr r25, r4
/* 8019C324 00197F84  7C BA 2B 78 */	mr r26, r5
/* 8019C328 00197F88  7C DB 33 78 */	mr r27, r6
/* 8019C32C 00197F8C  7C FC 3B 78 */	mr r28, r7
/* 8019C330 00197F90  48 02 54 6D */	bl func_801C179C
/* 8019C334 00197F94  28 03 00 01 */	cmplwi r3, 1
/* 8019C338 00197F98  40 82 00 24 */	bne lbl_8019C35C
/* 8019C33C 00197F9C  7F 43 D3 78 */	mr r3, r26
/* 8019C340 00197FA0  48 02 A4 D9 */	bl func_801C6818
/* 8019C344 00197FA4  2C 03 00 00 */	cmpwi r3, 0
/* 8019C348 00197FA8  7C 7E 1B 78 */	mr r30, r3
/* 8019C34C 00197FAC  40 82 00 18 */	bne lbl_8019C364
/* 8019C350 00197FB0  3F C0 80 1A */	lis r30, lbl_8019D908@ha
/* 8019C354 00197FB4  3B DE D9 08 */	addi r30, r30, lbl_8019D908@l
/* 8019C358 00197FB8  48 00 00 0C */	b lbl_8019C364
lbl_8019C35C:
/* 8019C35C 00197FBC  38 60 00 00 */	li r3, 0
/* 8019C360 00197FC0  48 00 01 70 */	b lbl_8019C4D0
lbl_8019C364:
/* 8019C364 00197FC4  80 6D 9F 88 */	lwz r3, lbl_8063F248-_SDA_BASE_(r13)
/* 8019C368 00197FC8  7F 04 C3 78 */	mr r4, r24
/* 8019C36C 00197FCC  38 A1 00 08 */	addi r5, r1, 8
/* 8019C370 00197FD0  38 C0 00 00 */	li r6, 0
/* 8019C374 00197FD4  38 E0 00 01 */	li r7, 1
/* 8019C378 00197FD8  48 02 40 29 */	bl func_801C03A0
/* 8019C37C 00197FDC  7C 7F 1B 78 */	mr r31, r3
/* 8019C380 00197FE0  7F 43 D3 78 */	mr r3, r26
/* 8019C384 00197FE4  48 02 A3 29 */	bl func_801C66AC
/* 8019C388 00197FE8  28 1C 00 01 */	cmplwi


]`>` constructor, or [`ReadNamespacedRouteStatusResponse`] directly, to parse the HTTP response.
    ///
    /// # Arguments
    ///
    /// * `name`
    ///
    ///     name of the Route
    ///
    /// * `namespace`
    ///
    ///     object name and auth scope, such as for teams and projects
    ///
    /// * `optional`
    ///
    ///     Optional parameters. Use `Default::default()` to not pass any.
    #[cfg(feature = "api")]
    pub fn read_namespaced_route_status(
        name: &str,
        namespace: &str,
        optional: ReadNamespacedRouteStatusOptional<'_>,
    ) -> Result<(http::Request<Vec<u8>>, fn(http::StatusCode) -> k8s_openapi::ResponseBody<ReadNamespacedRouteStatusResponse>), k8s_openapi::RequestError> {
        let ReadNamespacedRouteStatusOptional {
            pretty,
        } = optional;
        let __url = format!("/apis/route.openshift.io/v1/namespaces/{namespace}/routes/{name}/status?",
            name = k8s_openapi::percent_encoding::percent_encode(name.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
            namespace = k8s_openapi::percent_encoding::percent_encode(namespace.as_bytes(), k8s_openapi::percent_encoding2::PATH_SEGMENT_ENCODE_SET),
        );
        let mut __query_pairs = k8s_openapi::url::form_urlencoded::Serializer::new(__url);
        if let Some(pretty) = pretty {
            __query_pairs.append_pair("pretty", pretty);
        }
        let __url = __query_pairs.finish();

        let __request = http::Request::get(__url);
        let __body = vec![];
        match __request.body(__body) {
            Ok(request) => Ok((request, k8s_openapi::ResponseBody::new)),
            Err(err) => Err(k8s_openapi::RequestError::Http(err)),
        }
    }
}

/// Optional parameters of [`Route::read_namespaced_route_status`]
#[cfg(feature = "api")]
#[derive(Clone, Copy, Debug, Default)]
pub struct ReadNamespacedRouteStatusOptional<'a> {
    /// If 'true', then the output is pretty printed.
    pub pretty: Option<&'a str>,
}

/// Use `<ReadNamespacedRouteStatusResponse as Response>::try_from_parts` to parse the HTTP response body of [`Route::read_namespaced_route_status`]
#[cfg(feature = "api")]
#[derive(Debug)]
pub enum ReadNamespacedRouteStatusResponse {
    Ok(crate::api::route::v1::Route),
    Other(Result<Option<serde_json::Value>, serde_json::Error>),
}

#[cfg(feature = "api")]
impl k8s_openapi::Response for ReadNamespacedRouteStatusResponse {
    fn try_from_parts(status_code: http::StatusCode, buf: &[u8]) -> Result<(Self, usize), k8s_openapi::ResponseError> {
        match status_code {
            http::StatusCode::OK => {
                let result = match serde_json::from_slice(buf) {
                    Ok(value) => value,
                    Err(ref err) if err.is_eof() => return Err(k8s_openapi::ResponseError::NeedMoreData),
                    Err(err) => return Err(k8s_openapi::ResponseError::Json(err)),
                };
                Ok((ReadNamespacedRouteStatusResponse::Ok(result), buf.len()))
            },
            _ => {
                let (result, read) =
                    if buf.is_empty() {
                        (Ok(None), 0)
                    }
                    else {
                        match serde_json::from_slice(buf) {


 Token
        private const val PREF_TOKEN_KEY = "token"
        private const val PREF_TOKEN_DEFAULT = ""
        private const val PREF_TOKEN_SUMMARY = "Exclusive to Debrid providers; not intended for Torrents."

        // Debrid
        private const val PREF_DEBRID_KEY = "debrid_provider"
        private val PREF_DEBRID_ENTRIES = arrayOf(
            "None",
            "RealDebrid",
            "Premiumize",
            "AllDebrid",
            "DebridLink",
            "Offcloud",
            "TorBox",
        )
        private val PREF_DEBRID_VALUES = arrayOf(
            "none",
            "realdebrid",
            "premiumize",
            "alldebrid",
            "debridlink",
            "offcloud",
            "torbox",
        )

        // Sort
        private const val PREF_SORT_KEY = "sorting_link"
        private val PREF_SORT_ENTRIES = arrayOf(
            "By quality then seeders",
            "By quality then size",
            "By seeders",
            "By size",
        )
        private val PREF_SORT_VALUES = arrayOf(
            "quality",
            "qualitysize",
            "seeders",
            "size",

        )

        // Provider
        private const val PREF_PROVIDER_KEY = "provider_selection"
        private val PREF_PROVIDERS = arrayOf(
            "YTS",
            "EZTV",
            "RARBG",
            "1337x",
            "ThePirateBay",
            "KickassTorrents",
            "TorrentGalaxy",
            "MagnetDL",
            "HorribleSubs",
            "NyaaSi",
            "TokyoTosho",
            "AniDex",
            "🇷🇺 Rutor",
            "🇷🇺 Rutracker",
            "🇵🇹 Comando",
            "🇵🇹 BluDV",
            "🇫🇷 Torrent9",
            "🇪🇸 MejorTorrent",
            "🇲🇽 Cinecalidad",
            "🇮🇹 ilCorsaroNero",
            "🇪🇸 Wolfmax4k",
        )

        private val PREF_PROVIDERS_VALUE = arrayOf(
            "yts",
            "eztv",
            "rarbg",
            "1337x",
            "thepiratebay",
            "kickasstorrents",
            "torrentgalaxy",
            "magnetdl",
            "horriblesubs",
            "nyaasi",
            "tokyotosho",
            "anidex",
            "rutor",
            "rutracker",
            "comando",
            "bludv",
            "torrent9",
            "mejortorrent",
            "cinecalidad",
            "ilcorsaronero",
            "wolfmax4k",
        )

        private val PREF_DEFAULT_PROVIDERS_VALUE = arrayOf(
            "yts",
            "eztv",
            "rarbg",
            "1337x",
            "thepiratebay",
            "kickasstorrents",
            "torrentgalaxy",
            "magnetdl",
            "horriblesubs",
            "nyaasi",
            "tokyotosho",
            "anidex",
        )
        private val PREF_PROVIDERS_DEFAULT = PREF_DEFAULT_PROVIDERS_VALUE.toSet()

        // Qualities/Resolutions
        private const val PREF_QUALITY_KEY = "quality_selection"
        private val PREF_QUALITY = arrayOf(
            "BluRay REMUX",
            "HDR/HDR10+/Dolby Vision",
            "Dolby Vision",
            "Dolby Vision + HDR",
            "3D",
            "Non 3D (DO NOT SELECT IF NOT SURE)",
            "4k",
            "1080p",
            "720p",
            "480p",
            "Other (DVDRip/HDRip/BDRip...)",
            "Screener",
            "Cam",
            "Unknown",
        )

        private val PREF_QUALITY_VALUE = arrayOf(
            "brremux",
            "hdrall",
            "dolbyvision",
            "


�取与配置：安全上网的终极指南

在当今高度互联的数字时代，网络自由与隐私保护已成为全球网民的核心诉求。无论是突破地域限制访问全球资源，还是规避网络监控保护个人隐私，一款高效稳定的代理工具都显得至关重要。V2RAY作为新一代代理协议的代表，以其卓越的隐蔽性和灵活性赢得了技术圈的广泛认可。本文将深入剖析免费V2RAY节点的获取渠道、配置技巧及使用策略，为您打开安全上网的新视界。

V2RAY技术解析：重新定义网络代理

V2RAY远非传统代理工具的简单升级，而是一个革命性的网络通信框架。其核心优势在于支持VMess、VLESS、Trojan等多种协议，并能智能伪装成正常HTTPS流量，有效对抗深度包检测（DPI）。相较于Shadowsocks等传统工具，V2RAY采用更先进的流量混淆技术，使得网络审查系统难以识别和阻断。

技术架构上，V2RAY采用模块化设计，包含路由（Routing）、传输（Transport）、代理（Proxy）等多个功能模块。用户可根据网络环境自由组合，例如在严格审查地区启用WebSocket+TLS的伪装方案，而在普通环境使用更高效的TCP直连。这种灵活性使其成为对抗网络封锁的利器。

免费节点生态：机遇与风险并存

免费V2RAY节点主要来源于三个渠道：技术社区共享、个人开发者维护以及公益组织提供。知名技术论坛如V2EX、GitHub相关仓库常有用戶分享可用节点，Telegram上也有大量实时更新的节点频道。这些节点通常以订阅链接或配置文件形式存在，用户只需定期更新即可获取最新资源。

然而免费节点存在明显局限性：
 - 稳定性缺陷：公共节点常因用户过多导致带宽拥堵，高峰时段延迟可能超过500ms
 - 安全隐忧：约30%的免费节点未启用完整TLS加密，存在中间人攻击风险
 - 生命周期短：统计显示平均免费节点存活时间不超过72小时

建议用户将免费节点作为临时解决方案，重要操作（如网银登录）应切换至可信赖的付费服务。

专业级配置指南：从入门到精通

客户端选择策略

各平台首选客户端：
 - Windows：Qv2ray（支持多协议管理）
 - macOS：V2RayU（原生M1芯片优化）
 - Android：V2RayNG（支持路由分应用代理）
 - iOS：Shadowrocket（需外区Apple ID下载）


a4
	move.l	a4,a0
.read_par:
	move.b	(a5)+,d0
	cmp.b	#13,d0
	beq.s	.last_par
	cmp.b	#10,d0
	beq.s	.last_par
	cmp.b	#9,d0
	beq.s	.last_par
	cmp.b	#' ',d0
	beq.s	.last_par
	cmp.b	#',',d0
	bne.s	.still_same
	clr.b	(a0)+
	add.w	#64,a4
	move.l	a4,a0
	bra.s	.read_par
.still_same:
	move.b	d0,(a0)+
	bra.s	.read_par
.last_par:
	move.l	d5,a5

	move.l	a5,real_source
	lea	line_buff(pc),a0
	move.l	a0,left_line
	move.l	-4(a5),-4(a0)
.copy:	move.b	(a5)+,d0
	move.b	d0,(a0)+
	cmp.b	#13,d0
	beq.s	.copyf
	tst.b	d0
	bne.s	.copy
.copyf:	move.l	(a5),(a0)
	lea	line_buff(pc),a5

	addq.w	#1,mac_no
	bra	ins_end0

.oops:	move.l	(sp)+,a5
	move.w	(sp)+,(a5)
	movem.l	(sp)+,d6/a0/a1/a5
	bra	err_ins

err_ins:
	error2	terr_ins(pc)
	move.l	left_line(pc),a5
	bra	ins_end

* Checks if no illegal parallel instructions are found..
noparal_move:
.br1b:	move.b	(a5)+,d0
	beq	ins_end0
	cmp.b	#' ',d0
	beq.s	.br1b
	cmp.b	#9,d0
	beq.s	.br1b
	cmp.b	#13,d0
	beq	ins_end0
.br1d:	cmp.b	#';',d0
	beq	ins_end0
	bra	err_para

* Handles parallel instructions (and the main one too!! goddamn spagetti code!)
paral_move:
.br1b:	move.b	(a5)+,d0
	beq	ins_end0
	cmp.b	#' ',d0
	beq.s	.br1b
	cmp.b	#9,d0
	beq.s	.br1b
	cmp.b	#13,d0
	beq	ins_end0
.br1d:	cmp.b	#';',d0
	beq	ins_end0

double:	move.l	a5,a4
	move.l	apc(pc),d7
	move.l	a6,a3
	move.l	-3(a6),mem_double
	;bra	nodouble
	move.w	#$1000,-3(a3)
	bsr	doublex1
	tst.w	d0
	blt.s	double2

	entire	(a5),nodouble
	nowh2	double2
	bsr	doublex2
	tst.w	d0
	bge	ins_end

double2:
	move.l	a4,a5
	move.l	d7,apc
	move.l	a3,a6
	move.b	-1(a5)


('void*', 0x55555555)) == 0x55555555)
	assert(glue.ptr('int*', 0x55555555) == ffi.cast('void*', 0x55555555))

	if ffi.abi'64bit' then
		assert(glue.addr(ffi.cast('void*', 0x5555555555)) == 0x5555555555)
		--going out of our way not to use the LL suffix so that Lua 5.1 can compile this.
		local huge = ffi.new('union { struct { uint32_t lo; uint32_t hi; }; struct{} *p; }',
			{lo = 0x12345678, hi = 0xdeadbeef})
		local huges = '\x78\x56\x34\x12\xef\xbe\xad\xde'
		assert(glue.addr(huge.p) == huges) --string comparison
		assert(glue.ptr('union{}*', huges) == huge.p) --pointer comparison
	end
end

--list the namespace ---------------------------------------------------------

for k,v in glue.sortedpairs(glue) do
	print(string.format('glue.%-20s %s', k, v))
end

--TODO: freelist, buffer


final String AGENT = "agent";

	/** The name. */
	final IExpression name;

	/** The appreciation. */
	final IExpression appreciation;

	/** The dominance. */
	final IExpression dominance;

	/** The when. */
	final IExpression when;

	/** The solidarity. */
	final IExpression solidarity;

	/** The familiarity. */
	final IExpression familiarity;

	/** The trust. */
	final IExpression trust;

	/** The agent. */
	final IExpression agent;

	/**
	 * Instantiates a new socialize statement.
	 *
	 * @param desc the desc
	 */
	public SocializeStatement(IDescription desc) {
		super(desc);
		name = getFacet(IKeyword.NAME);
		appreciation = getFacet(SocializeStatement.LIKING);
		dominance = getFacet(SocializeStatement.DOMINANCE);
		when = getFacet(IKeyword.WHEN);
		solidarity = getFacet(SocializeStatement.SOLIDARITY);
		familiarity = getFacet(SocializeStatement.FAMILIARITY);
		trust = getFacet(SocializeStatement.TRUST);
		agent = getFacet(SocializeStatement.AGENT);
	}

	@Override
	protected Object privateExecuteIn(IScope scope) throws GamaRuntimeException {
		if (when == null || Cast.asBool(scope, when.value(scope))) {
			final IAgent[] stack = scope.getAgentsStack();
			final IAgent mySelfAgent = stack[stack.length - 2];
			IScope scopeMySelf = null;
			if (mySelfAgent != null) {
				scopeMySelf = mySelfAgent.getScope().copy("in SocializeStatement");
				scopeMySelf.push(mySelfAgent);
			}
			if(!scope.getAgent().equals(mySelfAgent)){
				SocialLink tempSocial = new SocialLink(scope.getAgent());
				if(!SimpleBdiArchitecture.hasSocialLink(scopeMySelf, tempSocial)){
					if (appreciation != null) {
						tempSocial.setLiking(Cast.asFloat(scopeMySelf, appreciation.value(scopeMySelf)));;
					}
					if (dominance != null){
						tempSocial.setDominance(Cast.asFloat(scopeMySelf, dominance.value(scopeMySelf)));
					}
					if (solidarity != null){
						tempSocial.setSolidarity(Cast.asFloat(scopeMySelf, solidarity.value(scopeMySelf)));
					}
					if (familiarity != null){
						tempSocial.setFamiliarity(Cast.asFloat(scopeMySelf, familiarity.value(scopeMySelf)));
					}
					if (trust != null){
						tempSocial.setTrust(Cast.asFloat(scopeMySelf, trust.value(scopeMySelf)));
					}
					if (agent != null){
						tempSocial.setAgent((IAgent)agent.value(scopeMySelf));
					}
					SimpleBdiArchitecture.addSocialLink(scopeMySelf, tempSocial);
				} else{
					/*update le social link.*/
					tempSocial = SimpleBdiArchitecture.getSocialLink(scopeMySelf, tempSocial);
					SimpleBdiArchitecture.updateSocialLink(scopeMySelf, tempSocial);
				}
			}
			GAMA.releaseScope(scopeMySelf);
		}
		return null;
	}

}
/*******************************************************************************************************
 *
 * SimpleBdiPlanStatement.java, in msi.gaml.architecture.simplebdi, is part of the source code of the
 * GAMA modeling and simulation platform (v.1.9.3).
 *
 * (c) 2007-2023 UMI 209 UMMISCO IRD/SU & Partners (IRIT, MIAT, TLU, CTU)
 *
 * Visit https://github.com/gama-platform/gama for license information and contacts.
 *
 ********************************************************************************************************/
package msi.gaml.architecture.simplebdi;

import msi.gama.common.interfaces.IKeyword;
import msi.gama


,
            expand_thresh,
            accept_thresh,
            rejections_thresh,
            allow_ascent,
            ..
        } = self.options;

        let Self {
            delta,
            mu,
            scale,
            jac,
            q_tr_fx_neg,
            newton,
            grad_neg,
            cauchy,
            jac_tr_jac,
            p,
            temp,
            iter,
            rejections_cnt,
            ..
        } = self;

        #[allow(clippy::needless_late_init)]
        let scaled_newton: &mut OVector<F::Scalar, F::Dim>;
        let scale_inv2: &mut OVector<F::Scalar, F::Dim>;
        let cauchy_scaled: &mut OVector<F::Scalar, F::Dim>;

        #[derive(Clone, Copy, PartialEq)]
        enum StepType {
            FullNewton,
            ScaledNewton,
            LevenbergMarquardt,
            ScaledCauchy,
            Dogleg,
        }

        // Compute F(x) and F'(x).
        f.eval(x, fx)?;
        jac.compute(f, x, scale, fx)?;

        let fx_norm = fx.norm();

        let estimate_delta = *delta == F::Scalar::zero();
        if estimate_delta {
            // Zero delta signifies that the initial delta is to be set
            // automatically and it has not been done yet.
            //
            // The initial delta is estimated as follows. Let vector d be
            // defined as
            //
            //     d_j = || F'(x)_*j || or 1 if it would be 0
            //
            // Then delta = K * || diag(d) x || or K if || diag(d) x || = 0,
            // where K = 100. The approach is taken from GSL.
            for (j, col) in jac.column_iter().enumerate() {
                temp[j] = col.norm();
                if temp[j] == F::Scalar::zero() {
                    temp[j] = F::Scalar::one();
                }
            }
            temp.component_mul_assign(x);

            let factor = convert(100.0);
            *delta = temp.norm() * factor;

            if *delta == F::Scalar::zero() {
                *delta = factor;
            }
        }

        // Perform QR decomposition of F'(x).
        let (q, r) = jac.clone_owned().qr().unpack();

        // Compute -Q^T F(x).
        q.tr_mul_to(fx, q_tr_fx_neg);
        q_tr_fx_neg.neg_mut();

        // Find the Newton step by solving the system R newton = -Q^T F(x).
        newton.copy_from(q_tr_fx_neg);
        let is_newton_valid = r.solve_upper_triangular_mut(newton);

        if !is_newton_valid {
            // TODO: Moore-Penrose pseudoinverse?
            debug!(
                "Newton step is invalid for ill-defined Jacobian (zero columns: {:?})",
                jac.column_iter()
                    .enumerate()
                    .filter(|(_, col)| col.norm() == F::Scalar::zero())
                    .map(|(i, _)| i)
                    .collect::<Vec<_>>()
            );
        }

        // Compute the norm of scaled Newton step (use temp fo storage).
        scaled_newton = temp;
        scaled_newton.copy_from(newton);
        scaled_newton.component_mul_assign(scale);
        let newton_scaled_norm = scaled_newton.norm();

        let step_type = if is_newton_valid && newton_scaled_norm <= *delta {
            // Scaled Newton step is inside the trust region. We can safely take it.
            p.copy_from(newton);
            debug!("take full Newton: {:?}", p.as_slice());
            StepType::FullNewton
        } else {
            // Newton step is outside the trust region. We need to involve the
            // gradient.

            // Compute -grad F(x) = -F'(x)^T F(x) = -R^T Q^T F(x).
            r.tr_mul_to(q_tr_fx_neg, grad_neg);

            let grad_norm = grad_neg.norm();

            if grad_norm == F::Scalar::zero


her express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package libcore.java.nio.charset;

public class OldCharset_SingleByte_windows_1255 extends OldCharset_SingleByteAbstractTest {

    protected void setUp() throws Exception {
        charsetName = "windows-1255";
        allChars = theseChars(new int[]{
            0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
            16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
            32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
            48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
            64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
            80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
            96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
            112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
            8364, 65533, 8218, 402, 8222, 8230, 8224, 8225, 710, 8240, 65533, 8249, 65533, 65533, 65533, 65533,
            65533, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 732, 8482, 65533, 8250, 65533, 65533, 65533, 65533,
            160, 161, 162, 163, 8362, 165, 166, 167, 168, 169, 215, 171, 172, 173, 174, 175,
            176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 247, 187, 188, 189, 190, 191,
            1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 65533, 1467, 1468, 1469, 1470, 1471,
            1472, 1473, 1474, 1475, 1520, 1521, 1522, 1523, 1524, 65533, 65533, 65533, 65533, 65533, 65533, 65533,
            1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503,
            1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 65533, 65533, 8206, 8207, 65533});
        super.setUp();
    }

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

/** Note: ICU behaves differently from the RI */

public class OldCharset_MultiByte_GBK_Android extends OldCharset_AbstractTest {

    @Override
    protected void setUp() throws Exception {
        charsetName


rint('THREE.KeyframeTrack: $message');
      return this;
    }

    createInterpolant = factoryMethod;

    return this;
  }

  getInterpolation() {
    print("KeyframeTrack.getInterpolation todo debug need confirm?? ");

    return _interpolation;

    // switch ( this.createInterpolant ) {

    // 	case this.InterpolantFactoryMethodDiscrete:

    // 		return InterpolateDiscrete;

    // 	case this.InterpolantFactoryMethodLinear:

    // 		return InterpolateLinear;

    // 	case this.InterpolantFactoryMethodSmooth:

    // 		return InterpolateSmooth;

    // }
  }

  getValueSize() {
    return values.length ~/ times.length;
  }

  // move all keyframes either forwards or backwards in time
  shift(timeOffset) {
    if (timeOffset != 0.0) {
      var times = this.times;

      for (var i = 0, n = times.length; i != n; ++i) {
        times[i] += timeOffset;
      }
    }

    return this;
  }

  // scale all keyframe times by a factor (useful for frame <-> seconds conversions)
  scale(timeScale) {
    if (timeScale != 1.0) {
      var times = this.times;

      for (var i = 0, n = times.length; i != n; ++i) {
        times[i] *= timeScale;
      }
    }

    return this;
  }

  // removes keyframes before and after animation without changing any values within the range [startTime, endTime].
  // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values
  trim(startTime, endTime) {
    var times = this.times, nKeys = times.length;

    var from = 0, to = nKeys - 1;

    while (from != nKeys && times[from] < startTime) {
      ++from;
    }

    while (to != -1 && times[to] > endTime) {
      --to;
    }

    ++to; // inclusive -> exclusive bound

    if (from != 0 || to != nKeys) {
      // empty tracks are forbidden, so keep at least one keyframe
      if (from >= to) {
        to = Math.max(to, 1).toInt();
        from = to - 1;
      }

      var stride = getValueSize();
      this.times = AnimationUtils.arraySlice(times, from, to);
      values = AnimationUtils.arraySlice(
          values, (from * stride).toInt(), (to * stride).toInt());
    }

    return this;
  }

  // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable
  validate() {
    var valid = true;

    var valueSize = getValueSize();
    if (valueSize - Math.floor(valueSize) != 0) {
      print('THREE.KeyframeTrack: Invalid value size in track. ${this}');
      valid = false;
    }

    var times = this.times, values = this.values, nKeys = times.length;

    if (nKeys == 0) {
      print('THREE.KeyframeTrack: Track is empty. ${this}');
      valid = false;
    }

    num? prevTime;

    for (var i = 0; i != nKeys; i++) {
      var currTime = times[i];

      if (currTime.runtimeType.toString() == 'num' && currTime == null) {
        print(
            'THREE.KeyframeTrack: Time is not a valid number. ${this} i: $i $currTime');
        valid = false;
        break;
      }

      if (prevTime != null && prevTime > currTime) {
        print(
            'THREE.KeyframeTrack: Out of order keys.${this} i: $i currTime: $currTime prevTime: $prevTime');
        valid = false;
        break;
      }
      prevTime = currTime;
    }

    if (AnimationUtils.isTypedArray(values)) {
      for (var i = 0, n = values.length; i != n;


 == null || // Messages to admin
                message.isAdminSender || // Messages from admin
                message.type == MessageType.broadcast) // Broadcast messages
            .toList());
  }
}
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../../../../core/constants/sizes.dart';
import '../../../../core/utils/widgets/error_widget.dart';
import '../../../../generated/l10n.dart';
import '../providers/user_exam_provider.dart';

class ExamResultPage extends ConsumerWidget {
  const ExamResultPage({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final attemptAsync = ref.watch(activeExamAttemptProvider);

    return attemptAsync.when(
      data: (attempt) {
        if (attempt == null) {
          return Scaffold(
            appBar: AppBar(title: Text(S.of(context).examResult)),
            body: Center(child: Text(S.of(context).unknownError)),
          );
        }

        // Watch exam details using the attempt's examId
        final examAsync = ref.watch(examDetailsProvider(attempt.examId));

        return Scaffold(
          appBar: AppBar(
            title: Text(S.of(context).examResult),
            automaticallyImplyLeading: false,
          ),
          body: examAsync.when(
            data: (exam) {
              final attemptScore = attempt.score ?? 0;
              final isPassed = attemptScore >= exam!.passingScore;

              return Center(
                child: Padding(
                  padding: const EdgeInsets.all(Sizes.defaultSpace),
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                      Icon(
                        isPassed ? Icons.check_circle : Icons.cancel,
                        size: 80,
                        color: isPassed ? Colors.green : Colors.red,
                      ),
                      const SizedBox(height: Sizes.spaceBtwItems),
                      Text(
                        exam.title,
                        style: Theme.of(context).textTheme.titleLarge,
                        textAlign: TextAlign.center,
                      ),
                      const SizedBox(height: Sizes.spaceBtwItems),
                      Text(
                        isPassed ? 'مبروك! لقد نجحت' : 'للأسف لم تنجح',
                        style: Theme.of(context)
                            .textTheme
                            .headlineMedium
                            ?.copyWith(
                              color: isPassed ? Colors.green : Colors.red,
                            ),
                      ),
                      const SizedBox(height: Sizes.spaceBtwItems),
                      Text(
                        'درجتك: $attemptScore%   (درجة النجاح: ${exam.passingScore}%)',
                        style: Theme.of(context).textTheme.titleMedium,
                      ),
                      const SizedBox(height: Sizes.spaceBtwSections),
                      ElevatedButton(
                        onPressed: () => Navigator.of(context)
                            .pushNamedAndRemoveUntil(
                                '/user-exams-page', (route) => false),
                        child: Text(S.of(context).backToHome),
                      ),
                    ],
                  ),
                ),
              );
            },
            loading: () => const Center(child: CircularProgressIndicator()),
            error: (error, _) => Center(
              child: CustomErrorWidget(
                onRetry: () => ref.refresh(examDetailsProvider(attempt.examId)),
              ),
            ),
          ),
        );
      },
      loading: () =>


// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) STMicroelectronics 2018 - All Rights Reserved
 * Authors: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
 *          Fabien Dessenne <fabien.dessenne@st.com> for STMicroelectronics.
 */

#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/mailbox_controller.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_wakeirq.h>

#define IPCC_XCR		0x000
#define XCR_RXOIE		BIT(0)
#define XCR_TXOIE		BIT(16)

#define IPCC_XMR		0x004
#define IPCC_XSCR		0x008
#define IPCC_XTOYSR		0x00c

#define IPCC_PROC_OFFST		0x010

#define IPCC_HWCFGR		0x3f0
#define IPCFGR_CHAN_MASK	GENMASK(7, 0)

#define IPCC_VER		0x3f4
#define VER_MINREV_MASK		GENMASK(3, 0)
#define VER_MAJREV_MASK		GENMASK(7, 4)

#define RX_BIT_MASK		GENMASK(15, 0)
#define RX_BIT_CHAN(chan)	BIT(chan)
#define TX_BIT_SHIFT		16
#define TX_BIT_MASK		GENMASK(31, 16)
#define TX_BIT_CHAN(chan)	BIT(TX_BIT_SHIFT + (chan))

#define STM32_MAX_PROCS		2

enum {
	IPCC_IRQ_RX,
	IPCC_IRQ_TX,
	IPCC_IRQ_NUM,
};

struct stm32_ipcc {
	struct mbox_controller controller;
	void __iomem *reg_base;
	void __iomem *reg_proc;
	struct clk *clk;
	spinlock_t lock; /* protect access to IPCC registers */
	int irqs[IPCC_IRQ_NUM];
	u32 proc_id;
	u32 n_chans;
	u32 xcr;
	u32 xmr;
};

static inline void stm32_ipcc_set_bits(spinlock_t *lock, void __iomem *reg,
				       u32 mask)
{
	unsigned long flags;

	spin_lock_irqsave(lock, flags);
	writel_relaxed(readl_relaxed(reg) | mask, reg);
	spin_unlock_irqrestore(lock, flags);
}

static inline void stm32_ipcc_clr_bits(spinlock_t *lock, void __iomem *reg,
				       u32 mask)
{
	unsigned long flags;

	spin_lock_irqsave(lock, flags);
	writel_relaxed(readl_relaxed(reg) & ~mask, reg);
	spin_unlock_irqrestore(lock, flags);
}

static irqreturn_t stm32_ipcc_rx_irq(int irq, void *data)
{
	struct stm32_ipcc *ipcc = data;
	struct device *dev = ipcc->controller.dev;
	u32 status, mr, tosr, chan;
	irqreturn_t ret = IRQ_NONE;
	int proc_offset;

	/* read 'channel occupied' status from other proc */
	proc_offset = ipcc->proc_id ? -IPCC_PROC_OFFST : IPCC_PROC_OFFST;
	tosr = readl_relaxed(ipcc->reg_proc + proc_offset + IPCC_XTOYSR);
	mr = readl_relaxed(ipcc->reg_proc + IPCC_XMR);

	/* search for unmasked 'channel occupied' */
	status = tosr & FIELD_GET(RX_BIT_MASK, ~mr);

	for (chan = 0; chan < ipcc->n_chans; chan++) {
		if (!(status & (1 << chan)))
			continue;

		dev_dbg(dev, "%s: chan:%d rx\n", __func__, chan);

		mbox_chan_received_data(&ipcc->controller.chans[chan], NULL);

		stm32_ipcc_set_bits(&ipcc->lock, ipcc->reg_proc + IPCC_XSCR,
				    RX_BIT_CHAN(chan));

		ret = IRQ_HANDLED;
	}

	return ret;
}

static irqreturn_t stm32_ipcc_tx_irq(int irq, void *data)
{
	struct stm32_ipcc *ipcc = data;
	struct device *dev = ipcc->controller.dev;
	u32 status, mr, tosr, chan;
	irqreturn_t ret = IRQ_NONE;

	tosr = readl_relaxed(ipcc->reg_proc + IPCC_XTOYSR);
	mr = readl_relaxed(ipcc->reg_proc + IPCC_XMR);

	/* search for unmasked 'channel free' */
	status = ~tosr & FIELD_GET(TX_BIT_MASK, ~mr);

	for (chan = 0; chan < ipcc->n_chans ; chan++) {
		if (!(status & (1 << chan)))
			continue;

		dev_dbg(dev, "%s: chan:%d tx\n", __func__, chan);

		/* mask 'tx channel free' interrupt */
		stm32_ipcc_set_bits(&ipcc->lock, ipcc->reg_proc + IPCC_XMR,
				    TX_BIT_CHAN(chan));

		mbox_chan_txdone(&ipcc->controller.chans[chan], 0);

		ret = IRQ_HANDLED;
	}

	return ret;
}

static int stm32_ipcc_send_data(struct mbox_chan *link, void *data)
{
	unsigned long chan = (unsigned long)link->con_priv;
	struct stm32_ipcc *ipcc = container_of(link->mbox, struct stm32_ipcc,
					       controller);

	dev_dbg(ipcc->controller.dev, "%s: chan:%lu\n", __func__, chan);

	/* set channel n occupied */
	stm32_ipcc_set_bits(&ipcc->lock, ipcc->reg_proc + IPCC_XSCR,
			    TX_BIT_CHAN(chan));

	/* unmask 'tx channel free' interrupt */
	stm32_ipcc_clr_bits(&ipcc->lock, ipcc->reg_proc + IPCC_XMR,
			    TX_BIT_CHAN(chan));

	return 0;
}

static int stm32_ipcc_startup(struct mbox_chan *link)
{
	unsigned long chan = (unsigned long)link->con_priv;
	struct stm32_ipcc *ipcc = container_of(link->mbox, struct stm32_ipcc,
					       controller);
	int ret;

	ret = clk_prepare_enable(ipcc->clk);
	if (ret) {
		dev_err(ipcc->controller.dev, "can not enable the clock\n");
		return ret;
	}

	/* unmask 'rx channel occupied' interrupt */
	stm32_ipcc_clr_bits(&ipcc->lock, ipcc-


string source;
    source += "local sum = 0\n";
    source += "for i=1,3 do\n";
    for (int i = 0; i < 10000; ++i)
    {
        source += "sum = sum + i\n";
        source += "if sum > 150000 then break end\n";
    }
    source += "end\n";
    source += "return sum\n";

    Luau::BytecodeBuilder bcb;
    bcb.setDumpFlags(Luau::BytecodeBuilder::Dump_Code);
    Luau::compileOrThrow(bcb, source.c_str());

    std::stringstream bcs(bcb.dumpFunction(0));

    std::vector<std::string> insns;
    std::string insn;
    while ((std::getline)(bcs, insn))
        insns.push_back(insn);

    // FORNPREP and early JUMPs (break) need to go through a trampoline
    std::string head;
    for (size_t i = 0; i < 16; ++i)
        head += insns[i] + "\n";

    CHECK_EQ("\n" + head, R"(
LOADN R0 0
LOADN R3 1
LOADN R1 3
LOADN R2 1
JUMP L1
L0: JUMPX L14543
L1: FORNPREP R1 L0
L2: ADD R0 R0 R3
LOADK R4 K0 [150000]
JUMP L4
L3: JUMPX L14543
L4: JUMPIFLT R4 R0 L3
ADD R0 R0 R3
LOADK R4 K0 [150000]
JUMP L6
L5: JUMPX L14543
)");

    // FORNLOOP has to go through a trampoline since the jump is back to the beginning of the function
    // however, late JUMPs (break) don't need a trampoline since the loop end is really close by
    std::string tail;
    for (size_t i = 44539; i < insns.size(); ++i)
        tail += insns[i] + "\n";

    CHECK_EQ("\n" + tail, R"(
ADD R0 R0 R3
LOADK R4 K0 [150000]
JUMPIFLT R4 R0 L14543
ADD R0 R0 R3
LOADK R4 K0 [150000]
JUMPIFLT R4 R0 L14543
JUMP L14542
L14541: JUMPX L2
L14542: FORNLOOP R1 L14541
L14543: RETURN R0 1
)");
}

TEST_CASE("CompileBytecode")
{
    // This is a coverage test, it just exercises bytecode dumping for correct and malformed code
    Luau::compile("return 5");
    Luau::compile("this is not valid lua, right?");
}

TEST_CASE("NestedNamecall")
{
    CHECK_EQ(
        "\n" + compileFunction0(R"(
local obj = ...
return obj:Method(1):Method(2):Method(3)
)"),
        R"(
GETVARARGS R0 1
LOADN R3 1
NAMECALL R1 R0 K0 ['Method']
CALL R1 2 1
LOADN R3 2
NAMECALL R1 R1 K0 ['Method']
CALL R1 2 1
LOADN R3 3
NAMECALL R1 R1 K0 ['Method']
CALL R1 2 -1
RETURN R1 -1
)"
    );
}

TEST_CASE("ElideLocals")
{
    // simple local elision: all locals are constant
    CHECK_EQ(
        "\n" + compileFunction0(R"(
local a, b = 1, 2
return a + b
)"),
        R"(
LOADN R0 3
RETURN R0 1
)"
    );

    // side effecting expressions block local elision
    CHECK_EQ(
        "\n" + compileFunction


16,
}

pub enum StdioContainer {
    Ignored,
    InheritFd(i32),
    CreatePipe(bool, bool),
}

pub enum ProcessExit {
    ExitStatus(int),
    ExitSignal(int),
}

pub enum FileMode {
    Open,
    Append,
    Truncate,
}

pub enum FileAccess {
    Read,
    Write,
    ReadWrite,
}

pub struct FileStat {
    pub size: u64,
    pub kind: u64,
    pub perm: u64,
    pub created: u64,
    pub modified: u64,
    pub accessed: u64,
    pub device: u64,
    pub inode: u64,
    pub rdev: u64,
    pub nlink: u64,
    pub uid: u64,
    pub gid: u64,
    pub blksize: u64,
    pub blocks: u64,
    pub flags: u64,
    pub gen: u64,
}

pub enum SeekStyle {
    SeekSet,
    SeekEnd,
    SeekCur,
}

pub struct AddrinfoHint {
    pub family: uint,
    pub socktype: uint,
    pub protocol: uint,
    pub flags: uint,
}

pub struct AddrinfoInfo {
    pub address: SocketAddr,
    pub family: uint,
    pub socktype: uint,
    pub protocol: uint,
    pub flags: uint,
}
<gh_stars>0
#[macro_use(make_slot_pit, make_slot_spawner)]
extern crate swarm_it;
extern crate piston_window;

use piston_window::{
    clear, ellipse, line, rectangle, text, Event, Glyphs, Graphics, PistonWindow, Size,
    TextureSettings, Transformed, WindowSettings,
};

use std::fs::File;
use std::io::{BufRead, BufReader, Read, Result};
use std::time::Instant;
use swarm_it::{Carrier, Payload, Slot, SlotKind};

const CARRIER_SIZE: f64 = 30.0;
const SLOT_SIZE: f64 = 50.0;
const TARGET_SIZE: f64 = 10.0;
const SIMULATION_TICKER: u128 = (1000.0 / 10.0) as u128; // 30 FPS
const CURRENT_PAYLOAD_FONT_SIZE: f64 = 24.0;
const TARGET_PAYLOAD_FONT_SIZE: f64 = CURRENT_PAYLOAD_FONT_SIZE / 2.3;
const NULL_SLOT_PAYLOAD_CHAR: char = '^';

type MyGameType = swarm_it::Swarm<char>;

struct LabelHelpers {
    slot_label_x_offsets: [Box<Fn(f64) -> f64>; 2],
    slot_label_y_offsets: [Box<Fn(f64) -> f64>; 2],
    slot_label_sizes: [f64; 2],
    carrier_label_x_offset: Box<Fn(f64) -> f64>,
    carrier_label_y_offset: Box<Fn(f64) -> f64>,
    carrier_label_size: f64,
    carrier_state_x_offset: Box<Fn(f64) -> f64>,
    carrier_state_y_offset: Box<Fn(f64) -> f64>,
    carrier_state_size: f64,
}

struct GuiData {
    width: u16,
    height: u16,
    fps_counter: u16,
    fps_current: u16,
    label_helpers: LabelHelpers,
}

struct FontCache {
    glyphs: Glyphs,
}

struct WorldState {
    time_since_last_tick: Instant,
    time_since_last_paint: Instant,
}

fn create_window(gui: &GuiData) -> PistonWindow {
    let size: Size = Size {
        height: f64::from(gui.height),
        width: f64::from(gui.width),
    };
    WindowSettings::new("Magister is testing the Swarm library", size)
        .exit_on_esc(true)


u Lotus doré"},
[61042] = {"Cheng Kang","Ombre du Lotus doré"},
[61046] = {"Jinlun Kun","Ombre du Lotus doré"},
[61050] = {"Forestier pandashan affolé",nil},
[61051] = {"\"Sealing the Wounds\" South Fissure Kill Credit",nil},
[61052] = {"\"Sealing the Wounds\" WestFissure Kill Credit",nil},
[61054] = {"Haine bouillonnante",nil},
[61055] = {"Suna Frappe Silencieuse",nil},
[61056] = {"Elémentaire de terre primordial",nil},
[61058] = {"Totem d’harmonie",nil},
[61060] = {"Moine de l’école du Serpent",nil},
[61061] = {"Tiger Temple General Purpose Bunny",nil},
[61062] = {"Totem d’harmonie",nil},
[61063] = {"Boule de neige",nil},
[61064] = {"Spirit Kill Credit",nil},
[61065] = {"Eauracle Goraï",nil},
[61066] = {"Taran Zhu","Seigneur des Pandashan"},
[61067] = {"Gao Ran le Trempé",nil},
[61068] = {"Moine de l’école de la Grue",nil},
[61069] = {"Shai Hu",nil},
[61070] = {"Haine explosive",nil},
[61071] = {"Petite grenouille",nil},
[61072] = {"Fragment d’âme",nil},
[61073] = {"Pilleur de tombes zandalari",nil},
[61074] = {"Réfugié zandalari",nil},
[61075] = {"Prophète Khar’zul",nil},
[61076] = {"Agneau rétif",nil},
[61077] = {"Agneau rétif",nil},
[61078] = {"Snow Boulder Bounce Bunny",nil},
[61079] = {"Player Clone (TEMP)",nil},
[61080] = {"Lapin",nil},
[61081] = {"Ecureuil",nil},
[61082] = {"Garde sombre de Gao Ran",nil},
[61083] = {"Garde sombre de Gao Ran",nil},
[61084] = {"Snow Boulder Generator",nil},
[61085] = {"Jeune castor",nil},
[61086] = {"Porc-épique",nil},
[61087] = {"Jeune fée du soleil",nil},
[61088] = {"Trotteur éternel",nil},
[61089] = {"Bébé loutre",nil},
[61090] = {"Jeune pincétau",nil},
[61091] = {"Ancien pincétau",nil},
[61092] = {"Haine bouillonnante",nil},
[61093] = {"Niuzao","Le Buffle noir"},
[61094] = {"Entraîneur Won","École du serpent"},
[61095] = {"Entraîneur Zi","École du serpent"},
[61096] = {"Vents givrants",nil},
[61097] = {"Verni Corde Bleue",nil},
[61116] = {"Killable Test Dummy 50",nil},
[61118] = {"Grand Plume Verte","Maître de vol"},
[61119] = {"Doigts Collants","En-cas et grignotage"},
[61120] = {"Grenouille à souhaits",nil},
[61121] = {"Sharinga Course Printemps",nil},
[61122] = {"Tania Brise d’Eté","Maître de vol"},
[61124] = {"Phase Controller",nil},
[61125] = {"Coin Bunny",nil},
[61126] = {"Aysa Poète des Nuages","Maître des Tushui"},
[61127] = {"Ji Patte de Feu","Maître des Huojin"},
[61128] =


{position:absolute;top:0;left:0;width:100%;height:100%}.uk-htmleditor .CodeMirror{padding:10px;box-sizing:border-box}$faa-passing-speed: 2s;
@keyframes passing {
  0% {
    transform: translateX(-50%);
    opacity: 0;
  }
  50% {
    transform: translateX(0%);
    opacity: 1;
  }
  100% {
    transform: translateX(50%);
    opacity: 0;
  }
}
@keyframes passing-reverse {
  0% {
    transform: translateX(50%);
    opacity: 0;
  }
  50% {
    transform: translateX(0%);
    opacity: 1;
  }
  100% {
    transform: translateX(-50%);
    opacity: 0;
  }
}
.faa-passing.animated,
.faa-passing.animated-hover:hover,
.faa-parent.animated-hover:hover > .faa-passing {
  animation: passing $faa-passing-speed linear infinite;
}
.faa-passing.animated.faa-fast,
.faa-passing.animated-hover.faa-fast:hover,
.faa-parent.animated-hover:hover > .faa-passing.faa-fast {
  animation: passing ($faa-passing-speed * $faa-speed-coeff-fast) linear infinite;
}
.faa-passing.animated.faa-slow,
.faa-passing.animated-hover.faa-slow:hover,
.faa-parent.animated-hover:hover > .faa-passing.faa-slow {
  animation: passing ($faa-passing-speed * $faa-speed-coeff-slow) linear infinite;
}
.faa-passing.faa-reverse.animated,
.faa-passing.faa-reverse.animated-hover:hover,
.faa-parent.animated-hover:hover > .faa-passing.faa-reverse {
  animation: passing-reverse $faa-passing-speed linear infinite;
}
.faa-passing.faa-reverse.animated.faa-fast,
.faa-passing.faa-reverse.animated-hover.faa-fast:hover,
.faa-parent.animated-hover:hover > .faa-passing.reverse.faa-fast {
  animation: passing-reverse ($faa-passing-speed * $faa-speed-coeff-fast) linear infinite;
}
.faa-passing.faa-reverse.animated.faa-slow,
.faa-passing.faa-reverse.animated-hover.faa-slow:hover,
.faa-parent.animated-hover:hover > .faa-passing.faa-reverse.faa-slow {
  animation: passing-reverse ($faa-passing-speed * $faa-speed-coeff-slow) linear infinite;
}
@import './variable.css';

body {
    color: var(--normalC);
    line-height: 1;
    min-width: var(--contentWidth);
    word-wrap: break-word;
    word-break: break-word;
}

body,
td,
a,
p,
li,
dl,
ul,
dt,
h1,
h2,
h3,
h4,
h5,
p,
dd {
    @mixin fontBase;
    padding: 0;
    margin: 0;
    font-weight: normal;
}

em, i {
    font-style: normal;
}

strong, b {
    font-weight: normal;
}

sub, sup {
    position: static;
    top: auto;
    font-size: 100%;
}

input,
textarea,
button {
    @mixin fontBase;
    outline: none;
}

input::-ms-clear {
    display: none;
}
img {
    vertical-align: top;
}

ul {
    list-style: none;
}

a {
    color: var(--normalC);
    text-decoration: none


) {
                    // replace if lhs coincides with an rhs variable
                    val replaced = rhs.find { it == lhs }!!  // oof, equals ignores tag, get the one from the rhs
                    val replacement = replaced.toUnique("u")

                    logger.debug { "For def $c @ $p replacing $replaced with $replacement" }

                    val useSubstitutor = getUseSubstituteMapper(replaced, replacement)
                    patch.replaceCommand(
                        p,
                        listOf(
                            TACCmd.Simple.AssigningCmd.AssignExpCmd(replacement, replaced),
                            useSubstitutor.map(c)
                        )
                    )
                }
            }
        }

        replacements.forEach { p, r ->
            patch.replaceCommand(
                p,
                listOf(r)
            )
        }

        return patch.toCodeNoTypeCheck(code)
    }

}/*
 *     The Certora Prover
 *     Copyright (C) 2025  Certora Ltd.
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, version 3 of the License.
 *
 *     This program is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 *     You should have received a copy of the GNU General Public License
 *     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

package normalizer

import analysis.*
import analysis.CommandWithRequiredDecls.Companion.withDecls
import datastructures.stdcollections.*
import evm.*
import kotlin.streams.*
import tac.*
import utils.*
import vc.data.*
import java.math.BigInteger

/**
    Some Solidity exception handling produces code like this:

    ```
        ByteLongCopy 0x0 0x0 0x4 tacM:bytemap tacReturndata:bytemap
    ```
    (and then later it reads from tacM0x0 and shifts right to get the error selector).

    This confuses the pointer analysis due to the unsafe write to the first 4 bytes of memory, so we replace it with
    this:

    ```
        tacM0x0 = *
        ret = returndata[0x0]
        eq1 = tacM0x0 & 0xffffffff000...000
        eq2 = ret & 0xffffffff000...000
        eq3 = eq1 == eq2
        assume eq3
    ```
 */
object Int32ScratchNormalizer {

    private val MASK = TACSymbol.Const(0xffffffff.toBigInteger() shl 224)

    private fun replacement(): CommandWithRequiredDecls<TACCmd.Simple> {
        val ret = TACKeyword.TMP(Tag.Bit256, "!ret").toUnique("!")
        val eq1 = TACKeyword.TMP(Tag.Bit256, "!eq1").toUnique("!")
        val eq2 = TACKeyword.TMP(Tag.Bit256, "!eq2").toUnique("!")
        val eq3 = TACKeyword.TMP(Tag.Bool, "!eq3").toUnique("!")

        return listOf(
            TACCmd.Simple.AssigningCmd.AssignHavocCmd(
                lhs = TACKeyword.MEM0.toVar()
            ),
            TACCmd.Simple.AssigningCmd.ByteLoad(
                lhs = ret,
                loc = TACSymbol.Zero,
                base = TACKeyword.RETURNDATA.toVar()
            ),
            TACCmd.Simple.AssigningCmd.AssignExpCmd(
                lhs = eq1,
                rhs = TACExpr.BinOp.BWAnd(
                    TACKeyword.MEM0.toVar().asSym(),
                    MASK.asSym()
                )
            ),
            TACCmd.Simple.AssigningCmd.AssignExpCmd(
                lhs = eq2,
                rhs = TACExpr.BinOp.BWAnd(
                    ret.asSym()


thod="POST"> - Concluir

            {% endfor %}

    {% else %}

Nenhuma tarefa encontrada.

    {% endif %}

    Criar nova tarefa

Sair

<form method="GET" action="/tarefas">
  <input type="text" name="busca" placeholder="Buscar título ou descrição">

  <select name="status">
    <option value="">Todos os status</option>
    <option value="pendente">Pendente</option>
    <option value="concluida">Concluída</option>
  </select>

  <select name="categoria_id">
    <option value="">Todas as categorias</option>
    {% for categoria in categorias %}
      <option value="{{ categoria[0] }}">{{ categoria[1] }}</option>
    {% endfor %}
  </select>

  <input type="date" name="data_criacao" placeholder="De (data criação)">
  <input type="date" name="data_conclusao" placeholder="Até (data conclusão)">

  <button type="submit">Filtrar</button>
</form>

<!DOCTYPE html>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cadastro - To-Do-List</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='cadastro.css') }}">

Cadastro de usuarios para a lista de tarefas!

Aqui você pode finalmente se cadastrar e criar suas próprias tarefas!

    <form method="POST">
<input name="nome_completo" placeholder="Nome completo" required>

<input name="username" placeholder="Usuário" required>

<input type="email" name="email" placeholder="Email" required>

  <input type="password" name="senha" placeholder="Senha" required>

<input type="password" name="confirmar_senha" placeholder="Confirmar Senha" required>

<input name="telefone" placeholder="Telefone" required>

  Data de nascimento

<input type="date" name="data_nascimento" required>

Como você conheceu a lista de tarefas?

<input name="como_conheceu" textarea="Como nos conheceu?" required>

<button type="submit">Cadastrar</button>
</form>

<button href="/login">Já tem uma conta? Faça login!</button>

<button href="/">Página inicial</button>

{% extends "base.html" %}

{% block content %}

{{ turma.serie_turma }}

        {% if user.is_authenticated and user.is_superuser %}
            Criar Aula
        {% endif %}

    <


estable but not a mastermind.  @ItsDeanBlundell   #FreedomConvoy https://t.co/VXAZPO3Kip <!--1514755411936788483-->
* [14 April 2022](https://web.archive.org/web/20220414173100/https://twitter.com/CarymaRules/status/1514657487550619654): RT @FatnMostly: @fordnation @Sflecce @celliottability @drkieranmoore are all fvcking parasites. 49 days #VoteFordOut2022 #VoteThemAllOut202… <!--1514657487550619654-->
* [14 April 2022](https://web.archive.org/web/20220414130558/https://twitter.com/CarymaRules/status/1514590789724221441): RT @CarymaRules: My DMs are open to anyone who’s been harassed, bullied &/or silenced by the Canadian Anti-Hate Network.  It’s disturbing t… <!--1514590789724221441-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992): Oh snap btw this is why they’re looking for a new police chief: https://twitter.com/tanyafusco/status/1514017080865177609 <!--1514023595768532992-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992) ([live](https://twitter.com/CarymaRules/status/1514021248539447305)): No remarks from the Chair, so moving on to the agenda item of “correspondence.” <!--1514021248539447305-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992) ([live](https://twitter.com/CarymaRules/status/1514020780283244550)): Acting chief compares police to a referee in a hockey game, saying they need to have blinders on. <!--1514020780283244550-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992) ([live](https://twitter.com/CarymaRules/status/1514020778689376258)): A question about “pro-vaxx” people whose voices seem not to be heard.  Acting chief understands the frustration about rallies, but “we have to be careful about infringing on people’s rights.”   He acknowledges an assembly becomes unlawful where behaviour rises to a certain level. <!--1514020778689376258-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992) ([live](https://twitter.com/CarymaRules/status/1514020774969057288)): There are several anonymous accounts upset at  @DianeNTherrien  using the word “dimwits.”  I suspect some of the complainants proudly wave Fuck Trudeau flags. pic.twitter.com/uqpxwkzucC <!--1514020774969057288-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992) ([live](https://twitter.com/CarymaRules/status/1514020756908388361)): Oh lmao I haven’t been following the chat at all. This is why I hate Teams. pic.twitter.com/zu4SLMbVAW <!--1514020756908388361-->
* [12 April 2022](https://web.archive.org/web/20220412233310/https://twitter.com/CarymaRules/status/1514023595768532992) ([live](https://twitter.com/Cary


using BloatynosyNue;
using Microsoft.Win32;
using System;
using System.Drawing;

namespace Settings.AI
{
    internal class CopilotTaskbar : FeatureBase
    {
        public CopilotTaskbar(Logger logger) : base(logger)
        {
        }

        private const string keyName = @"HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\WindowsCopilot";
        private const string valueName = "TurnOffWindowsCopilot";
        private const int desiredValue = 1;

        public override string GetRegistryKey()
        {
            return $"{keyName} | Value: {valueName} | Desired Value: {desiredValue}";
        }

        public override string ID()
        {
            return  BloatynosyNue.Locales.Strings._aiCopilotTaskbar;
        }

        public override string Info()
        {
            return BloatynosyNue.Locales.Strings._aiCopilotTaskbar_desc;
        }


 h2 {
  margin: 0 0 1.5em;
}

.buddyboss-mothership-block .button {
  line-height: 36px;
  height: 38px;
  padding: 0 20px 1px;
}

.buddyboss-mothership-block ul {
  list-style-type: disc;
  margin-right: 18px;
}

.buddyboss-mothership-block ul li {
  line-height: 1.5;
  margin-bottom: 2em;
}

.buddyboss-mothership-settings {
  background: #f9f9f9;
  border: 1px solid #ddd;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
  display: flex;
  min-width: 255px;
  max-width: 1050px;
  border-radius: 5px;
}

.buddyboss-mothership-settings .setting-wrapper {
  overflow: initial;
  width: 100%;
  padding: 20px;
  flex-flow: wrap;
}

.buddyboss-mothership-settings .setting-wrapper h2 {
  margin-top: 0;
}

.buddyboss-mothership-settings .setting-wrapper .activated-licence {
  background: #e7f4e4;
  border: 1px solid #c6e2c4;
  padding: 10px 15px;
  margin: 10px 0 20px;
  color: #2c662d;
  font-weight: 600;
  border-radius: 3px;
}

.buddyboss-mothership-settings .setting-wrapper .activated-licence p {
  margin: 5px 0;
}

.buddyboss-mothership-settings .setting-wrapper .license-form-wrap {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 20px;
}

.buddyboss-mothership-settings .setting-wrapper .license-form-wrap .form-table th {
  max-width: 120px;
}

.buddyboss-mothership-settings .setting-wrapper .license-form-wrap .form-table [scope="row"] {
  padding-right: 0 !important;
}

.buddyboss-mothership-settings .setting-wrapper .license-form-wrap [name="license_key"] {
  width: 100%;
  max-width: 500px;
}

.buddyboss-mothership-settings .setting-wrapper ul {
  margin: 0;
}

.buddyboss-mothership-settings .setting-wrapper ul li {
  margin: 0 0 0 -1px;
  padding: 0;
  list-style-type: none;
  background: #eee;
  border-bottom: 1px solid #ddd;
  border-left: 1px solid #ddd;
}

.buddyboss-mothership-settings .setting-wrapper ul li:first-child {
  border-radius: 0 5px 0 0;
}

.buddyboss-mothership-settings .setting-wrapper ul li:last-child {
  margin-bottom: 20px;
}

.buddyboss-mothership-settings .setting-wrapper ul li a {
  display: block;
  padding: 14px 20px;
  line-height: 24px;
  text-decoration: none;
  color: #717171;
  font-size: 14px;
  font-weight: 600;
}

.buddyboss-mothership-settings .setting-wrapper ul li a .dashicons {
  margin-top: 2px;
  margin-left: 7px;
}

.buddyboss-mothership-settings .setting-wrapper ul li a .dashicons-warning {
  color: #dc3232;
}

.buddyboss-mothership-settings .setting-wrapper ul li a .


. A value lower than 1 means use all procs available. ")
	private int nJobs = 1;
	@Parameter(names={"--contigWinLength"},description="window size when splitting per contig")
	private int contigWinLength=1000;
	@Parameter(names={"--contigWinShift"},description="window shift when splitting per contig")
	private int contigWinShift=500;
	@ParametersDelegate
	private SkatFactory skat = new SkatFactory();

	private PrintWriter writer=null;

	private static class SkatCallerResult
		{
		Interval interval;
		String error_msg= null;
		double pvalue=1;
		int nVariants=0;

		@Override
		public String toString() {
			final StringBuilder sb= new StringBuilder();
			if(error_msg!=null) sb.append("#");
			sb.append(interval.getContig());
			sb.append("\t");
			sb.append(interval.getStart()-1);
			sb.append("\t");
			sb.append(interval.getEnd());
			sb.append("\t");
			sb.append(nVariants);
			sb.append("\t");
			sb.append(pvalue);
			if(error_msg!=null) sb.append("\t").append(error_msg);
			return sb.toString();
			}
		}

	/* a genome partition worker, slide over the window in the defined interval */
	private class SkatWorker implements Callable<Integer>
		{
		private final File vcfFile;
		private final Interval fromTo;
		private final Set<Pedigree.Person> samples;
		private final SkatFactory.SkatExecutor skatExec;
		private final Consumer<SkatCallerResult> writeTo;
		SkatWorker( final File vcfFile,
					final Interval fromTo,
					final Set<Pedigree.Person> samples,
					final SkatFactory.SkatExecutor skatExec,
					final Consumer<SkatCallerResult> writeTo
					) {
			this.vcfFile = vcfFile;
			this.fromTo = fromTo;
			this.samples= samples;
			this.skatExec = skatExec;
			this.writeTo = writeTo;
			}

		@Override
		public Integer call() throws Exception {
			LOG.info("calling "+this.fromTo);
			VCFReader vcfFileReader = null;
			CloseableIterator<VariantContext> iter=null;
			int x=1;
			try
				{
				final List<VariantContext> variants = new ArrayList<>();
				vcfFileReader = VCFReaderFactory.makeDefault().open(this.vcfFile,true);

				while(x<this.fromTo.getEnd())
					{
					if(x < this.fromTo.getStart()) {
						x += VcfSkatSlidingWindow.this.contigWinShift;
						continue;
						}

					final SkatCallerResult result = new SkatCallerResult();
					result.interval = new Interval(
							this.fromTo.getContig(),
							x,
							x+VcfSkatSlidingWindow.this.contigWinLength
							);
					variants.clear();
					iter = vcfFileReader.query(
							result.interval.getContig(),
							result.interval.getStart(),
							result.interval.getEnd()
							);
					while(iter.hasNext())
						{
						final VariantContext ctx = iter.next();
						if(!this.skatExec.getUpstreamVariantFilter().test(ctx)) continue;
						variants.add(ctx);
						}
					iter.close();
					iter=null;
					result.nVariants = variants.size();
					if(variants.isEmpty())
						{
						result.pvalue=1;
						}
					else
						{
						final SkatFactory.SkatResult skatResult = this.skatExec.execute(variants, this.samples);
						if(skatResult.isError())


/**
 * @file
 * @brief
 *
 * @date 22.07.10
 * @author Andrey Baboshin
 * @author Ilia Vaprol
 * @author Fedor Burdun
 */

#include <kernel/time/timer.h>
#include <hal/clock.h>
#include <hal/ipl.h>

static DLIST_DEFINE(sys_timers_list); /* list head to timers */

void timer_strat_start(struct sys_timer *tmr) {
	struct sys_timer *it_tmr = NULL;
	struct dlist_head *next_tmr_lnk = &sys_timers_list;
	ipl_t ipl;

	dlist_head_init(&tmr->lnk);

	tmr->cnt = clock_sys_ticks() + tmr->load;

	ipl = ipl_save();

	/* find first element that its time bigger than inserting @new_time */
	dlist_foreach_entry(it_tmr, &sys_timers_list, lnk) {
		if (it_tmr->cnt >= tmr->cnt) {
			/* decrease value of next timer after inserting */
			it_tmr->cnt -= tmr->cnt;

			next_tmr_lnk = &it_tmr->lnk;
			goto out;
		}
		tmr->cnt -= it_tmr->cnt;
	}

out:

	timer_set_started(tmr);
	dlist_add_prev(&tmr->lnk, next_tmr_lnk);
	ipl_restore(ipl);
}

void timer_strat_stop(struct sys_timer *ptimer) {
	struct sys_timer *next_tmr;
	ipl_t ipl;

	ipl = ipl_save();
	timer_set_stopped(ptimer);

	if (ptimer->lnk.next != &sys_timers_list) {
		next_tmr = (struct sys_timer *)ptimer->lnk.next;
		next_tmr->cnt += ptimer->cnt;
	}

	dlist_del(&ptimer->lnk);
	ipl_restore(ipl);
}

int timer_strat_get_next_event(clock_t *next_event) {
	ipl_t ipl;
	int ret = -1;
	struct sys_timer *t;

	ipl = ipl_save();
	if (!dlist_empty(&sys_timers_list)) {
		t = dlist_first_entry(&sys_timers_list, struct sys_timer, lnk);
		*next_event = t->cnt;
		ret = 0;
	}
	ipl_restore(ipl);

	return ret;
}

/**
 * For each timer in the timers array do the following: if the timer is enable
 * and the counter of this timer is the zero then its initial value is assigned
 * to the counter and the function is executed.
 */
void timer_strat_sched(clock_t jiffies) {
	struct sys_timer *timer = NULL;
	ipl_t ipl;

	ipl = ipl_save();
	dlist_foreach_entry(timer, &sys_timers_list, lnk) {
		if (jiffies < timer->cnt) {
			break;
		}
		jiffies -= timer->cnt;

		timer_strat_stop(timer);
		if (timer_is_periodic(timer)) {
			timer_strat_start(timer);
		}

		timer->handle(timer, timer->param);
	}
	ipl_restore(ipl);
}


pg = pg or {}
pg.equip_data_statistics_146 = {
	[21422] = {
		id = 21422,
		damage = "6 x 4",
		base = 21420,
		weapon_id = {
			21422
		}
	},
	[21423] = {
		id = 21423,
		damage = "7 x 4",
		base = 21420,
		weapon_id = {
			21423
		}
	},
	[21424] = {
		id = 21424,
		damage = "8 x 4",
		base = 21420,
		weapon_id = {
			21424
		}
	},
	[21425] = {
		id = 21425,
		damage = "9 x 4",
		base = 21420,
		weapon_id = {
			21425
		}
	},
	[21426] = {
		id = 21426,
		damage = "10 x 4",
		base = 21420,
		weapon_id = {
			21426
		}
	},
	[21440] = {
		name = "120mm連装砲",
		speciality = "追尾",
		type = 1,
		tech = 3,
		descrip = "0",
		value_2 = 25,
		icon = "21400",
		attribute_2 = "cannon",
		rarity = 4,
		damage = "4 x 4",
		nationality = 2,
		ammo = 3,
		value_3 = 0,
		id = 21440,
		torpedo_ammo = 0,
		property_rate = {},
		ammo_icon = {
			1
		},
		ammo_info = {
			{
				1,
				1100
			}
		},
		equip_info = {
			1,
			2,
			{
				3,
				1100
			},
			{
				4,
				1001
			},
			6,
			10,
			11,
			12
		},
		weapon_id = {
			21440
		},
		skill_id = {},
		part_main = {
			1,
			19
		},
		part_sub = {
			2,
			3,
			4,
			5,
			8,
			13,


/*
 * Copyright (C) 2012 Igalia S.L.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this library; see the file COPYING.LIB.  If not, write to
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301, USA.
 */

#ifndef WebKitSecurityManagerPrivate_h
#define WebKitSecurityManagerPrivate_h

#include "WebKitSecurityManager.h"
#include "WebKitWebContext.h"

WebKitSecurityManager* webkitSecurityManagerCreate(WebKitWebContext*);

#endif // WebKitSecurityManagerPrivate_h


о: |cffffff1|r <<1>>.", 0)
SAS(SI_ATTRIBUTE_RESPEC_CONFIRM_DIALOG_BODY_INTRO, "Вы уверены, что хотите применить изменения?", 0)
SAS(SI_ATTRIBUTE_RESPEC_CONFIRM_DIALOG_TITLE, "Подтверждение изменений", 0)
SAS(SI_ATTRIBUTE_TOOLTIP_HEALTH, "Определяет количество урона, которое вы можете выдержать в бою, и максимальное количество лечения, которое вы можете получить. Вне боя скорость восстановления здоровья увеличивается.", 1)
SAS(SI_ATTRIBUTE_TOOLTIP_MAGICKA, "Определяет, сколько способностей, расходующих магию, вы можете применить. Со временем магия восстанавливается. Вне боя скорость ее восстановления увеличивается. Полностью заряженные силовые атаки посохами также восстанавливают магию.", 1)
SAS(SI_ATTRIBUTE_TOOLTIP_STAMINA, "Определяет, сколько способностей, расходующих запас сил, вы можете применить, а также насколько часто вы можете использовать спринт, прерывающие удары, перемещение в режиме скрытности, кувырки и освобождение. Запас сил восстанавливается со временем. Вне боя скорость его восстановления увеличивается. Полностью заряженные силовые атаки оружием ближнего боя или луками также восстанавливают запас сил.", 1)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS0, "По умолчанию", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS1, "Моно", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS2, "Стерео", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS3, "2.1", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS4, "Четырехканальный", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS5, "4.1", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS6, "5", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS7, "Объемный", 0)
SAS(SI_AUDIOSPEAKERCONFIGURATIONS8, "7.1", 0)
SAS(SI_AUDIO_OPTIONS_AMBIENT_VOLUME, "Громкость звуков окружения", 0)
SAS(SI_AUDIO_OPTIONS_AMBIENT_VOLUME_TOOLTIP, "Регулировка громкости звуков окружения.", 1)
SAS(SI_AUDIO_OPTIONS_BACKGROUND_AUDIO, "Фоновый режим", 0)
SAS(SI_AUDIO_OPTIONS_BACKGROUND_AUDIO_TOOLTIP, "Не отключает звук, даже если окно игры свернуто.", 0)
SAS(SI_AUDIO