urer, gun_type, rarity, obj_name in balances:

            print('Processing {} {} {} ({})'.format(manufacturer, gun_type, rarity, obj_name))
            bal = BalanceTree(obj_name, data)
            total_count += bal.gun_count()
            if do_anoints:
                total_count_anoint += bal.gun_count(anointment_additions, anointment_exclusions)
                print('  -> {} ({} with anoints)'.format(bal.gun_count(), bal.gun_count(anointment_additions, anointment_exclusions)))
            else:
                print('  -> {}'.format(bal.gun_count()))

            datarow = [manufacturer]
            if type_col_name:
                datarow.append(gun_type)
            datarow.extend([
                rarity,
                obj_name,
                bal.gun_count(),
                ])
            if do_anoints:
                datarow.append(bal.gun_count(anointment_additions, anointment_exclusions))
            writer.writerow(datarow)

            bal = None

        footer_row = ['Total']
        if type_col_name:
            footer_row.append('')
        footer_row.extend([
            '',
            '',
            total_count,
            ])
        if do_anoints:
            footer_row.append(total_count_anoint)
        writer.writerow(footer_row)
        print('')
        if do_anoints:
            print('Total: {} ({} with anoints)'.format(total_count, total_count_anoint))
        else:
            print('Total: {}'.format(total_count))
        print('...done!')


_ENEMIES", false)
    val enemySnaplinesColor = VisColorPickerCustom("Enemies", "SNAPLINES_ENEMY_COLOR")

    val teamSnaplines = VisCheckBoxCustom(" ", "SNAPLINES_TEAMMATES", false)
    val teamSnaplinesColor = VisColorPickerCustom("Teammates", "SNAPLINES_TEAM_COLOR")

    val weaponSnaplines = VisCheckBoxCustom(" ", "SNAPLINES_WEAPONS", false)
    val weaponSnaplinesColor = VisColorPickerCustom("Weapons", "SNAPLINES_WEAPON_COLOR")

    val bombSnaplines = VisCheckBoxCustom(" ", "SNAPLINES_BOMB", false)
    val bombSnaplinesColor = VisColorPickerCustom("Bomb", "SNAPLINES_BOMB_COLOR")

    val bombCarrierSnaplines = VisCheckBoxCustom(" ", "SNAPLINES_BOMB_CARRIER", false)
    val bombCarrierSnaplinesColor = VisColorPickerCustom("Bomb Carrier", "SNAPLINES_BOMB_CARRIER_COLOR")

    val defuseKitSnaplines = VisCheckBoxCustom(" ", "SNAPLINES_DEFUSE_KITS", false)
    val defuseKitSnaplinesColor = VisColorPickerCustom("Defuse Kits", "SNAPLINES_DEFUSE_KIT_COLOR")

    init {
        table.padLeft(25F)
        table.padRight(25F)

        table.add(enableSnaplines).left().row()
        table.add(snaplinesWidth).left().colspan(2).row()

        table.add(snaplinesSmokeCheck).left().row()

        var tmpTable = VisTable()
        tmpTable.add(enemySnaplines)
        tmpTable.add(enemySnaplinesColor).width(175F - enemySnaplines.width).padRight(50F)
        table.add(tmpTable)

        tmpTable = VisTable()
        tmpTable.add(teamSnaplines)
        tmpTable.add(teamSnaplinesColor).width(175F - teamSnaplines.width).padRight(50F).row()
        table.add(tmpTable).row()

        tmpTable = VisTable()
        tmpTable.add(weaponSnaplines)
        tmpTable.add(weaponSnaplinesColor).width(175F - weaponSnaplines.width).padRight(50F)
        table.add(tmpTable)

        tmpTable = VisTable()
        tmpTable.add(bombSnaplines)
        tmpTable.add(bombSnaplinesColor).width(175F - bombSnaplines.width).padRight(50F).row()
        table.add(tmpTable).row()

        tmpTable = VisTable()
        tmpTable.add(bombCarrierSnaplines)
        tmpTable.add(bombCarrierSnaplinesColor).width(175F - bombCarrierSnaplines.width).padRight(50F)
        table.add(tmpTable)

        tmpTable = VisTable()
        tmpTable.add(defuseKitSnaplines)
        tmpTable.add(defuseKitSnaplinesColor).width(175F - defuseKitSnaplines.width).padRight(50F)
        table.add(tmpTable)
    }

    override fun getContentTable(): Table? {
        return table
    }

    override fun getTabTitle(): String? {
        return "Snaplines".toLocale()
    }
}

fun snaplinesEspTabUpdate() {
    snaplinesEspTab.apply {
        enableSnaplines.update()
        snaplinesWidth.update()
        snaplinesSmokeCheck.update()
        enemySnaplines.update()
        enemySnaplinesColor.update()
        teamSnaplines.update()
        teamSnaplinesColor.update()
        weaponSnaplines.update()
        weaponSnaplinesColor.update()
        bombSnaplines.update()
        bombSnaplinesColor.update()
        bombCarrierSnaplines.update()
        bomb


    return this.http.get<World[]>(`${this.baseUrl}/api/worlds`, { params });
  }
}

@Injectable()
export class _StaticWorldService implements WorldService {
  constructor(private http: HttpClient) {}

  getAll(): Observable<World[]> {
    return this.http.get<World[]>('/data/worlds.json');
  }

  getById(worldId: number): Observable<World> {
    return this.http.get<World[]>('/data/worlds.json').pipe(
      map(worlds => <World>worlds.find(p => p.id === worldId)));
  }

  getByWorldType(worldType: string): Observable<World[]> {
    return this.http.get<World[]>('/data/worlds.json').pipe(
      map(worlds => worlds.filter(p => p.worldTypes.includes(worldType))));
  }

  getAllWorldTypes(): Observable<string[]> {
    return this.http.get<World[]>('/data/worlds.json')
      .pipe(
        map(this.reduceWorldTypes),
        map(worldTypes => Array.from(new Set(worldTypes)))
      );
  }

  search(params: WorldSearchParams): Observable<World[]> {
    return this.http.get<World[]>('/data/worlds.json').pipe(
      map(worlds => this.filterWorlds(worlds, params))
    );
  }

  private reduceWorldTypes(worlds: World[]): string[] {
    return worlds.reduce((all, world) => all.concat(world.worldTypes), new Array<string>());
  }

  private filterWorlds(worlds: World[], params: WorldSearchParams): World[] {
    return worlds.filter(p => {
      if (params.title && !p.title.toLowerCase().includes(params.title.toLowerCase())) {
        return false;
      }
      if (params.minStars && p.stars < params.minStars) {
        return false;
      }
      if (params.maxStars && p.stars > params.maxStars) {
        return false;
      }
      return true;
    });
  }
}

// import { Injectable } from '@angular/core';
// import { HttpClient } from '@angular/common/http';
// import { Observable } from 'rxjs/Observable';

// @Injectable()
// export class WorldService {

//   constructor(private http: HttpClient) {}

//   getAll(): Observable<World[]> {
//     return this.http.get<World[]>('/data/Worlds/all.json');
//   }
// }

// export interface World {
//   description: string;
//   featured: boolean;
//   imageUrl: string;
//   userNumber: number;
//   worldTitle: string;
//   id: string;
// }import { AbstractControl } from '@angular/forms';

export class DecimalPatternValidator {
  public static validate(control: AbstractControl, num: number, dec: number) {
    const REGEXP = new RegExp(`^[+|-]?\\d{0,${num}}(\\.\\d{1,${dec}})?$`);
    return control.value && control.value !== '' && !REGEXP.test(control.value)
      ? {
          validateDecimalPattern: {
            num,
            dec,
            valid: false,
            errorText: `Maximum length: ${num || ''} digits + ${
              dec || ''
            } decimals.`,
          },
        }
      : null;
  }
}module scenes {
    export class Story02p2Scene extends objects.Scene {

      private _story: objects.Story02Obj02;
      private _exitBtn: objects.Button;

      // Public Properties
      // Constructor
      constructor(assetManager: createjs.LoadQueue) {
        super(assetManager);

        this.Start();
      }

      // Private Mathods

      private _animationEnded(): void {
        createjs.Sound.stop();
        objects.Game.currentScene = config.Scene.DESERT;
      }

      private _back


# SPDX-FileCopyrightText: 2025 BD3D DIGITAL DESIGN (Dorian B.)
#
# SPDX-License-Identifier: GPL-2.0-or-later

import bpy

class NODEBOOSTER_PR_Window(bpy.types.PropertyGroup):
    """sett_win = bpy.context.window_manager.nodebooster"""
    #Properties in there will always be temporary and reset to their default values on each blender startup

    #for python nodes
    authorize_automatic_execution : bpy.props.BoolProperty(
        default=False,
        name="Allow Automatic Executions",
        description="Automatically running a foreign python script is dangerous. Do you know the content of this .blend file? If not, do you trust the authors? When this button is enabled python expressions or scripts from the nodebooster plugin will never execute automatically, you will need to engage with the node properties to trigger an execution",
        )

    #for minimap modal navitation

    def launch_minimap_modal_operator(self, context):
        """lauch a modal navigation operator on each window"""

        if (self.minimap_modal_operator_is_active):
            wm = context.window_manager
            for win in wm.windows:
                if ((win) and (win.screen) and (not win.screen.is_temporary) and (context.temp_override)):
                    with context.temp_override(window=win, screen=win.screen):
                        bpy.ops.nodebooster.minimap_interaction('INVOKE_DEFAULT',) #modal are tied per windows.
        return None

    minimap_modal_operator_is_active : bpy.props.BoolProperty(
        default=False,
        name="Modal Navigations",
        description="When enabled, the minimap modal operator will be active. This will allow you to move the minimap around the node editor area with your mouse when hovering over the minimap.",
        update=launch_minimap_modal_operator,
        )


left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:3px 3px 0 0;background-clip:padding-box}div.sceditor-group{border-radius:3px;background-clip:padding-box}.ie6 div.sceditor-group,.ie7 div.sceditor-group{display:inline;zoom:1}.sceditor-button{float:left;cursor:pointer;width:16px;text-indent:-9999px}.ie .sceditor-button{text-indent:0}.ie6 .sceditor-button,.ie7 .sceditor-button{float:none!important;display:inline;zoom:1}.ie6 .sceditor-button{padding:0}.ie6 .sceditor-button div{margin:5px}.ie7 .sceditor-button div{margin:5px 0}.sceditor-button:active{background:#fff}.sceditor-button.disabled:hover{background:inherit;cursor:default;box-shadow:none}.sceditor-button,.sceditor-button div{display:block}.sceditor-button div{padding:0;overflow:hidden;line-height:0;font-size:0;color:transparent}.sceditor-button.disabled div{filter:alpha(opacity=30);opacity:.3}.sceditor-button.text,.sceditor-button.text div,.sceditor-button.text-icon,.sceditor-button.text-icon div,.text .sceditor-button,.text .sceditor-button div,.text-icon .sceditor-button,.text-icon .sceditor-button div{width:auto;overflow:visible;line-height:16px;font-size:1em;color:inherit;text-indent:0}.sceditor-button.text div,.text .sceditor-button div{padding:0 2px;background:0 0}.sceditor-button.text-icon div,.text-icon .sceditor-button div{padding:0 2px 0 20px}.rtl div.sceditor-toolbar{text-align:right}.rtl .sceditor-button{float:right}.rtl div.sceditor-grip{right:auto;left:0}.sceditor-container{border:1px solid #999}.sceditor-container textarea{font-family:Consolas,"Bitstream Vera Sans Mono","Andale Mono",Monaco,"DejaVu Sans Mono","Lucida Console",monospace;background:#2e3436;color:#fff;margin:0;padding:5px}div.sceditor-toolbar{background:#ccc;background:linear-gradient(to bottom,#ccc 0,#b2b2b2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#b2b2b2', GradientType=0)}.ie9 div.sceditor-toolbar{-webkit-filter:none;filter:none;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NjY2NjYyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY2


oly = nPolyConn;
  unsigned short offLevel = 0;

  for (unsigned short k = 0; k <= nPolyConn; ++k, --mPoly) {
    unsigned short ind = offLevel;

    /* The variables of a and d in the transformation are actually flexible. */
    /* Create the correct values of a and d for the current k-level.         */
    const signed short aa = a ? mPoly : 0;
    const signed short dd = d ? mPoly : 0;

    /* Loop over the DOFs of the current quadrilateral. */
    for (unsigned short j = 0; j <= mPoly; ++j) {
      for (unsigned short i = 0; i <= mPoly; ++i, ++ind) {
        /*--- Determine the ii and jj indices of the new numbering, convert it
              to a 1D index and shore the modified index in modConnPyra. ---*/
        unsigned short ii = aa + i * b + j * c;
        unsigned short jj = dd + i * e + j * f;
        unsigned short iind = offLevel + jj * (mPoly + 1) + ii;

        modConnPyra[iind] = connPyra[ind];
      }
    }

    /* Update offLevel for the next quadrilateral level of the pyramid. */
    offLevel += (mPoly + 1) * (mPoly + 1);
  }

  /*--- The quad corresponds to face 0 of the pyramid. Hence the first
        nn2 entries in modConnPyra are the DOFs of the quad. Copy
        these entries from modConnPyra. ---*/
  const unsigned short nn2 = (nPolyConn + 1) * (nPolyConn + 1);
  for (unsigned short i = 0; i < nn2; ++i) modConnQuad[i] = modConnPyra[i];
}

void CMeshFEM_DG::CreateConnectivitiesTriangleAdjacentPrism(const unsigned long* cornerPointsTria,
                                                            const unsigned short nPolyGrid,
                                                            const vector<unsigned long>& prismNodeIDsGrid,
                                                            const unsigned short nPolyConn,
                                                            const unsigned long* connPrism, unsigned long* modConnTria,
                                                            unsigned long* modConnPrism) {
  /* Determine the indices of the six corner points of the prism. */
  const unsigned short ind0 = 0;
  const unsigned short ind1 = nPolyGrid;
  const unsigned short ind2 = (nPolyGrid + 1) * (nPolyGrid + 2) / 2 - 1;
  const unsigned short ind3 = (nPolyGrid + 1) * (nPolyGrid + 2) * nPolyGrid / 2;
  const unsigned short ind4 = ind1 + ind3;
  const unsigned short ind5 = ind2 + ind3;

  /* Easier storage of the three corner points of the triangle in the new numbering. */
  const unsigned long vert0 = cornerPointsTria[0];
  const unsigned long vert1 = cornerPointsTria[1];
  const unsigned long vert2 = cornerPointsTria[2];

  /*--- There exists a linear mapping from the indices of the numbering used in
        prismNodeIDsGrid to the indices of the target numbering. This mapping is
        of the form ii = a + b*i + c*j, jj = d + e*i + f*j and kk = g + h*k,
        where ii,jj,kk are the indices of the new numbering and i,j,k the indices
        of the numbering used in in prismNodeIDsGrid (and connPrism). Note that
        the k-direction can at most be reversed compared to the original definition.
        This is due to the way the basis functions are defined for


}p{font-family:inherit;font-weight:normal;font-size:1rem;line-height:1.6;margin-bottom:1.25rem;text-rendering:optimizeLegibility}p aside{font-size:0.875rem;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"Open Sans","Helvetica Neue","Helvetica",Helvetica,Arial,sans-serif;font-weight:300;font-style:normal;color:#222;text-rendering:optimizeLegibility;margin-top:0.2rem;margin-bottom:0.5rem;line-height:1.4}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:2.125rem}h2{font-size:1.6875rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1.125rem}h6{font-size:1rem}hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:1.25rem 0 1.1875rem;height:0}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:bold;color:#7f0a0c}ul,ol,dl{font-size:1rem;line-height:1.6;margin-bottom:1.25rem;list-style-position:outside;font-family:inherit}ul{margin-left:1.1rem}ul.no-bullet{margin-left:0}ul.no-bullet li ul,ul.no-bullet li ol{margin-left:1.25rem;margin-bottom:0;list-style:none}ul li ul,ul li ol{margin-left:1.25rem;margin-bottom:0;font-size:1rem}ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}ul.square{list-style-type:square;margin-left:1.1rem}ul.circle{list-style-type:circle;margin-left:1.1rem}ul.disc{list-style-type:disc;margin-left:1.1rem}ul.no-bullet{list-style:none}ol{margin-left:1.4rem}ol li ul,ol li ol{margin-left:1.25rem;margin-bottom:0}dl dt{margin-bottom:0.3rem;font-weight:bold}dl dd{margin-bottom:0.75rem}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px dotted #ddd;cursor:help}abbr{text-transform:none}blockquote{margin:0 0 1.25rem;padding:0.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #ddd}blockquote cite{display:block;font-size:0.8125rem;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}blockquote,blockquote p{line-height:1.6;color:#6f6f6f}.vcard{display:inline-block;margin:0 0 1.25rem 0;border:1px solid #ddd;padding:0.625rem 0.75rem}.vcard li{margin:0;display:block}.vcard .fn{font-weight:bold;font-size:0.9375rem}.vevent .summary{font-weight:bold}.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 0.0625rem}@media only screen and (min-width: 40.063em){h1,h2,h3,h4,h5,h6{line-height:1.4}h1{font-size:2.75rem}h2{font-size:2.3125rem}h3{font-size:1.6875rem}h4{font-size:1.4375rem}}.print-only{display:none !important}@media pr


alse);
			});

			it('Returns true if comments are equal', () => {
				const comment1 = document.createComment('foo');
				const comment2 = document.createComment('foo');

				expect(NodeUtility.isEqualNode(comment1, comment2)).toEqual(true);
			});
		});

		describe('w/ text node', () => {
			it('Returns false if data are different', () => {
				const textNode1 = document.createTextNode('foo1');
				const textNode2 = document.createTextNode('foo2');

				expect(NodeUtility.isEqualNode(textNode1, textNode2)).toEqual(false);
			});

			it('Returns true if text nodes are equal', () => {
				const textNode1 = document.createTextNode('foo');
				const textNode2 = document.createTextNode('foo');

				expect(NodeUtility.isEqualNode(textNode1, textNode2)).toEqual(true);
			});
		});
	});
});
/**
 * 播放器狀態
 *
 * @export
 * @enum {number}
 */
export enum PlayerStatus {
  /**
   * 正在載入播放器
   */
  Loading,
  /**
   * 正在初始化播放器
   */
  Initiating,
  /**
   * 就緒
   */
  Ready,
  /**
   * 緩衝中
   */
  Buffering,
  /**
   * 開始
   */
  Cued,
  /**
   * 播放中
   */
  Playing,
  /**
   * 暫停
   */
  Paused,
  /**
   * 播放結束
   */
  Ended
}
import Generator, {GeneratorType, isValidType} from './generator'

test('isValidType', () => {
  for (const type of Object.keys(GeneratorType)) {
    expect(isValidType(GeneratorType[type])).toBeTruthy()
  }

  expect(isValidType('foo')).toBeFalsy()
})

test('Generator.generate', async () => {
  const gen = new Generator()

  for (const type of Object.keys(GeneratorType)) {
    for (let i = 0; i < 20; i++) {
      const generated = gen.generate([GeneratorType[type]])

      expect(generated.useragent).toMatch(/^Mozilla\/5\.0.+/)

      switch (GeneratorType[type]) {
        case GeneratorType.chromeLinux:
          expect(generated.engine).toBe('blink')
          expect(generated.osType).toBe('linux')
          expect(generated.browser).toBe('chrome')

          expect(generated.useragent).toContain('X11')
          expect(generated.useragent).toContain('Linux')
          expect(generated.useragent).toMatch(/Chrome\/\d+\.0\.\d+\.\d+/)
          expect(generated.useragent).toMatch(/AppleWebKit\/\d+\.\d+/)
          expect(generated.useragent).toContain('KHTML, like Gecko')
          expect(generated.useragent).toContain('Safari/537.36')
          break

        case GeneratorType.chromeMac:
          expect(generated.engine).toBe('blink')
          expect(generated.osType).toBe('macOS')
          expect(generated.browser).toBe('chrome')

          expect(generated.useragent).toMatch(/Macintosh; Intel Mac OS X \d+_\d+/)
          expect(generated.useragent).toMatch(/Chrome\/\d+\.0\.\d+\.\d+/)
          expect(generated.useragent).toMatch(/AppleWebKit\/\d+\.\d+/)
          expect(generated.useragent).toContain('KHTML, like Gecko')
          expect(generated.useragent).toContain('Safari/537.36')
          break

        case GeneratorType.chromeWin:
          expect(generated.engine).toBe('blink')
          expect(generated.osType).toBe('windows')
          expect(generated.browser).toBe('chrome')

          expect(generated.useragent).toMatch(/Windows NT \d+.\d+/)
          expect(generated.useragent).toContain('64')
          expect(generated.useragent).toMatch(/Chrome\/\d+\.0\.\d+\.\d+/)
          expect(generated.useragent).


c const uint32_t kNEON = 1 << 12;
  uint32_t hwcap = GetAuxval(AT_HWCAP);
  if ((hwcap & kNEON) == 0) {
    return false;
  }

  // And use it again to detect AES.
  static const uint32_t kAES = 1 << 0;
  const uint32_t hwcap2 = GetAuxval(AT_HWCAP2);
  return (hwcap2 & kAES) != 0;

#elif defined(ABSL_ARCH_AARCH64)
  // For AARCH64: Require crypto+neon
  // http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500f/CIHBIBBA.html
  static const uint32_t kNEON = 1 << 1;
  static const uint32_t kAES = 1 << 3;
  const uint32_t hwcap = GetAuxval(AT_HWCAP);
  return ((hwcap & kNEON) != 0) && ((hwcap & kAES) != 0);
#endif

#elif defined(__APPLE__) && defined(ABSL_ARCH_AARCH64)
  // 3. Use sysctlbyname.

  // Newer XNU kernels support querying all capabilities in a single
  // sysctlbyname.
#if defined(CAP_BIT_AdvSIMD) && defined(CAP_BIT_FEAT_AES)
  static const absl::optional<uint64_t> caps =
      ReadSysctlByName<uint64_t>("hw.optional.arm.caps");
  if (caps.has_value()) {
    constexpr uint64_t kNeonAndAesCaps =
        (uint64_t{1} << CAP_BIT_AdvSIMD) | (uint64_t{1} << CAP_BIT_FEAT_AES);
    return (*caps & kNeonAndAesCaps) == kNeonAndAesCaps;
  }
#endif

  // https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics#overview
  static const absl::optional<int> adv_simd =
      ReadSysctlByName<int>("hw.optional.AdvSIMD");
  if (adv_simd.value_or(0) == 0) {
    return false;
  }
  // https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics#3918855
  static const absl::optional<int> feat_aes =
      ReadSysctlByName<int>("hw.optional.arm.FEAT_AES");
  if (feat_aes.value_or(0) == 0) {
    return false;
  }
  return true;
#else  // ABSL_INTERNAL_USE_GETAUXVAL
  // 4. By default, assume that the compiler default.
  return ABSL_HAVE_ACCELERATED_AES ? true : false;

#endif
  // NOTE: There are some other techniques that may be worth trying:
  //
  // * Use an environment variable: ABSL_RANDOM_USE_HWAES
  //
  // * Rely on compiler-generated target-based dispatch.
  // Using x86/gcc it might look something like this:
  //
  // int __attribute__((target("aes"))) HasAes() { return 1; }
  // int __attribute__((target("default"))) HasAes() { return 0; }
  //
  // This does not work on all architecture/compiler combinations.
  //
  // * On Linux consider reading /proc/cpuinfo and/or /proc/self/auxv.
  // These files have lines which are easy to parse; for ARM/AARCH64 it is quite
  // easy to find the Features: line and extract aes / neon. Likewise for
  // PPC.
  //
  // * Fork a process and test for SIGILL:
  //
  // * Many architectures have instructions to read the ISA. Unfortunately
  //   most of those require that the code is running in ring 0 /
  //   protected-mode.
  //
  //   There are several examples. e.g. Valgrind detects P


$_image, $_baseline), $_baseline),
        size: if($_size, ($_size, $_baseline-size), $_baseline-size),
      ));

      @if $_show == 'show' {
        $_clip: map-get($_return, clip);
        $_return: map-merge($_return, (clip: join($_clip, border-box, comma)));
      }
    } @else if $_show == 'show-baseline' {
      @warn 'Please provide a $base-line-height with the desired height and units';
    }
  }

  @if map-get($_return, image) {
    $_return: map-merge($_return, (flow: susy-get(flow, $grid)));
  }

  @return $_return;
}

// Get Debug
// ---------
// Return the value of a debug setting
// - $key: <setting>
@function debug-get(
  $key,
  $grid: $susy
) {
  $key: join(debug, $key, space);
  @return susy-get($key, $grid);
}
// Bleed Syntax
// ============

// Bleed
// -----
// Add negative margins, and equal positive padding to create bleed.
// - $bleed  :
@mixin bleed(
  $bleed: 0 gutter()
) {
  $inspect  : $bleed;
  $output   : get-bleed($bleed);

  @if susy-get(global-box-sizing) != content-box {
    $output: map-merge((box-sizing: content-box), $output);
  }

  @include susy-inspect(bleed, $inspect);
  @include output($output);
}

// Bleed-x
// -------
// Shortcut for horizontal bleed.
// - $bleed  :
@mixin bleed-x(
  $bleed: gutter()
) {
  $bleed  : parse-span($bleed);
  $trbl   : susy-get(span, $bleed);

  @if length($trbl) == 1 {
    $bleed: map-merge($bleed, (span: 0 nth($trbl, 1)));
  } @else if length($trbl) == 2 {
    $bleed: map-merge($bleed, (span: 0 nth($trbl, 2) 0 nth($trbl, 1)));
  } @else {
    @warn 'bleed-x only takes 2 lengths, but #{length($trbl)} were passed.';
  }

  @include bleed($bleed);
}

// Bleed-y
// -------
// Shortcut for vertical bleed.
// - $bleed  :
@mixin bleed-y(
  $bleed: if(function-exists(rhythm), rhythm(1), 1em)
) {
  $bleed  : parse-span($bleed);
  $trbl   : susy-get(span, $bleed);

  @if length($trbl) == 1 {
    $bleed: map-merge($bleed, (span: nth($trbl, 1) 0));
  } @else if length($trbl) == 2 {
    $bleed: map-merge($bleed, (span: nth($trbl, 1) 0 nth($trbl, 2) 0));
  } @else {
    @warn 'bleed-y only takes 2 lengths, but #{length($trbl)} were passed.';
  }

  @include bleed($bleed);
}

// Get Bleed
// ---------
// Return bleed output values
// - $bleed:
@function get-bleed(
  $bleed
) {
  $bleed    : map-merge((spread: wide), parse-span($bleed));
  $trbl     : susy-get(span, $bleed);
  $short    : null;
  $output   : ();

  @for $i from 1 through length($trbl) {
    $this: nth($trbl, $i);
    $new: ();
    $margin: null;
    $padding: null;
    $padding-x: null;

    @if $this > 0 {
      $this: map-merge($bleed, (span: $this));
      $margin: span($this);
      $padding: $margin;
      $padding-x: $padding;


C00009 */  bne     $t6, $zero, .L80887624
/* 00310 80887600 271877C4 */  addiu   $t8, $t8, %lo(func_808877C4) ## $t8 = 808877C4
/* 00314 80887604 84E5001C */  lh      $a1, 0x001C($a3)           ## 0000001C
/* 00318 80887608 0C00B2ED */  jal     Flags_UnsetSwitch

/* 0031C 8088760C AFA70018 */  sw      $a3, 0x0018($sp)
/* 00320 80887610 8FA70018 */  lw      $a3, 0x0018($sp)
/* 00324 80887614 3C0F8088 */  lui     $t7, %hi(func_80887534)    ## $t7 = 80880000
/* 00328 80887618 25EF7534 */  addiu   $t7, $t7, %lo(func_80887534) ## $t7 = 80887534
/* 0032C 8088761C 10000002 */  beq     $zero, $zero, .L80887628
/* 00330 80887620 ACEF014C */  sw      $t7, 0x014C($a3)           ## 0000014C
.L80887624:
/* 00334 80887624 ACF8014C */  sw      $t8, 0x014C($a3)           ## 0000014C
.L80887628:
/* 00338 80887628 8FBF0014 */  lw      $ra, 0x0014($sp)
/* 0033C 8088762C 27BD0018 */  addiu   $sp, $sp, 0x0018           ## $sp = 00000000
/* 00340 80887630 03E00008 */  jr      $ra
/* 00344 80887634 00000000 */  nop


]".as_ref().to_owned(),
            eval.serialize());
}

#[test]
fn test_lexer_error() {
    let mut lexer = Lexer::new_with_input(b"foo$\nbad $");
    let mut eval = EvalString::new();
    assert_eq!(Err(
        concat!(
            "input:2: bad $-escape (literal $ must be written as $$)\n",
            "bad $\n",
            "    ^ near here",
        ).to_owned()), lexer.read_var_value(&mut eval));
}

#[test]
fn test_lexer_comment_eof() {
    // Verify we don't run off the end of the string when the EOF is
    // mid-comment.
    let mut lexer = Lexer::new_with_input(b"# foo");
    let token = lexer.read_token();
    assert_eq!(LexerToken::ERROR, token);
}

#[test]
fn test_lexer_tabs() {
    // Verify we print a useful error on a disallowed character.
    let mut lexer = Lexer::new_with_input(b"   \tfoobar");
    let mut token;
    token = lexer.read_token();
    assert_eq!(LexerToken::INDENT, token);
    token = lexer.read_token();
    assert_eq!(LexerToken::ERROR, token);
    assert_eq!("tabs are not allowed, use spaces", lexer.describe_last_error());
}
<gh_stars>1-10
//! Implementation of EPCBC-48.

use super::{Cipher, CipherStructure};
use super::PropertyType;
use super::super::sbox::Sbox;
use std::mem;

/*****************************************************************
                            EPCBC48
******************************************************************/

//// A structure representing the EPCBC48 cipher.
#[derive(Clone)]
pub struct Epcbc48 {
    size: usize,
    key_size: usize,
    sbox: Sbox,
    isbox: Sbox,
}

impl Epcbc48 {
    const SBOX: [u8; 16] = [
        0xc, 0x5, 0x6, 0xb, 0x9, 0x0, 0xa, 0xd, 0x3, 0xe, 0xf, 0x8, 0x4, 0x7, 0x1, 0x2,
    ];
    const ISBOX: [u8; 16] = [
        0x5, 0xe, 0xf, 0x8, 0xc, 0x1, 0x2, 0xd, 0xb, 0x4, 0x6, 0x3, 0x0, 0x7, 0x9, 0xa,
    ];

    /// Create a new instance of the cipher.
    pub fn new() -> Epcbc48 {
        let table: Vec<_> = From::from(&Epcbc48::SBOX[0..]);
        let itable: Vec<_> = From::from(&Epcbc48::ISBOX[0..]);
        Epcbc48 {
            size: 48,
            key_size: 96,
            sbox: Sbox::new(4, 4, table),
            isbox: Sbox::new(4, 4, itable),
        }
    }
}

impl Cipher for Epcbc48 {
    fn structure(&self) -> CipherStructure {
        CipherStructure::Spn
    }

    fn size(&self) -> usize {
        self.size
    }

    fn key_size(&self) -> usize {
        self.key_size
    }

    fn num_sboxes(&self) -> usize {
        self.size / self.sbox.size_in()
    }

    fn sbox(&self, _i: usize) -> &Sbox {
        &self.sbox
    }

    fn sbox_pos_in(&self, i: usize) -> usize {
        i * self.sbox(i).size_in()
    }

    fn sbox_pos_out(&self, i: usize) -> usize {
        i * self.sbox(i).size_out()
    }

    fn linear_layer(&self, input: u128) -> u128 {
        let mut output = 0;

        for i in 0..self.size - 1 {
            output ^= ((input >> i) & 0x1) << ((i * self.size / 4) % (self.size - 1));
        }
        output ^= ((input >> (self


G_occipital_middle' },
    13120: { color: [20, 220, 60], opacity: 1, label: 'wm_lh_G_occipital_sup' },
    13121: { color: [60, 20, 140], opacity: 1, label: 'wm_lh_G_oc-temp_lat-fusifor' },
    13122: { color: [220, 180, 140], opacity: 1, label: 'wm_lh_G_oc-temp_med-Lingual' },
    13123: { color: [65, 100, 20], opacity: 1, label: 'wm_lh_G_oc-temp_med-Parahip' },
    13124: { color: [220, 60, 20], opacity: 1, label: 'wm_lh_G_orbital' },
    13125: { color: [20, 60, 220], opacity: 1, label: 'wm_lh_G_pariet_inf-Angular' },
    13126: { color: [100, 100, 60], opacity: 1, label: 'wm_lh_G_pariet_inf-Supramar' },
    13127: { color: [220, 180, 220], opacity: 1, label: 'wm_lh_G_parietal_sup' },
    13128: { color: [20, 180, 140], opacity: 1, label: 'wm_lh_G_postcentral' },
    13129: { color: [60, 140, 180], opacity: 1, label: 'wm_lh_G_precentral' },
    13130: { color: [25, 20, 140], opacity: 1, label: 'wm_lh_G_precuneus' },
    13131: { color: [20, 60, 100], opacity: 1, label: 'wm_lh_G_rectus' },
    13132: { color: [60, 220, 20], opacity: 1, label: 'wm_lh_G_subcallosal' },
    13133: { color: [60, 60, 220], opacity: 1, label: 'wm_lh_G_temp_sup-G_T_transv' },
    13134: { color: [220, 60, 220], opacity: 1, label: 'wm_lh_G_temp_sup-Lateral' },
    13135: { color: [65, 220, 60], opacity: 1, label: 'wm_lh_G_temp_sup-Plan_polar' },
    13136: { color: [25, 140, 20], opacity: 1, label: 'wm_lh_G_temp_sup-Plan_tempo' },
    13137: { color: [220, 220, 100], opacity: 1, label: 'wm_lh_G_temporal_inf' },
    13138: { color: [180, 60, 60], opacity: 1, label: 'wm_lh_G_temporal_middle' },
    13139: { color: [61, 20, 220], opacity: 1, label: 'wm_lh_Lat_Fis-ant-Horizont' },
    13140: { color: [61, 20, 60], opacity: 1, label: 'wm_lh_Lat_Fis-ant-Vertical' },
    13141: { color: [61, 60, 100], opacity: 1, label: 'wm_lh_Lat_Fis-post' },
    13142: { color: [25, 25, 25], opacity: 1, label: 'wm_lh_Medial_wall' },
    13143: { color: [140, 20, 60], opacity: 1, label: 'wm_lh_Pole_occipital' },
    13144: { color: [220, 180, 20], opacity: 1, label: 'wm_lh_Pole_temporal' },
    13145: { color: [63, 180, 180], opacity: 1, label: 'wm_lh_S_calcarine' },
    13146: { color: [221, 20, 10], opacity: 1, label: 'wm_lh_S_central' },
    13147: { color: [221, 20, 100], opacity: 1, label: 'w


#                   --- THIS FILE IS AUTO-GENERATED ---
# Modifications will be overwitten the next time code generation run.

import _plotly_utils.basevalidators as _bv

class ColorValidator(_bv.ColorValidator):
    def __init__(
        self, plotly_name="color", parent_name="ohlc.decreasing.line", **kwargs
    ):
        super().__init__(
            plotly_name,
            parent_name,
            edit_type=kwargs.pop("edit_type", "style"),
            **kwargs,
        )


//
//  MNNConvRunForLineDepthwise.S
//  MNN
//
//  Created by MNN on 2019/02/04.
//  Copyright © 2018, Alibaba Group Holding Limited
//

#ifdef __aarch64__

#include "MNNAsmGlobal.h"

.text
.align 5

asm_function MNNConvRunForLineDepthwise
//void MNNConvRunForLineDepthwise(float* dst, const float* src, const float* weight, size_t width, size_t src_w_setup,
//                                size_t fw, size_t fh, size_t dilateX_step, size_t dilateY_step, size_t height, size_t srcHStep, size_t dstHStep)

//Auto Load:
//x0:dst, x1:src, x2:weight, x3:width, x4:src_w_setup, x5:fw, x6:fh, x7:dilate_x_step

//Load From sp:
//x8:dilate_y_step, x15: height, x10: srcHStep, x11:dstHStep
ldr x8, [sp, #0]
ldr x15, [sp, #8]
ldr x10, [sp, #16]
ldr x11, [sp, #24]

mov x9, #4
mul x4, x9, x4
mul x7, x9, x7
mul x8, x9, x8
mul x10, x9, x10
mul x11, x9, x11

//dilate_y_step -> dilate_y_step - fw*dilate_x_step
mul x9, x5, x7
sub x8, x8, x9

LoopDY:
mov v4.d[0], x10
mov v4.d[1], x11
mov v5.d[0], x0
mov v5.d[1], x1
mov v6.d[0], x3

L16:
cmp x3, #16
blt L8

mov x12, #16
mul x12, x4, x12

L16Loop:
    movi v16.4s, #0
    movi v17.4s, #0
    movi v18.4s, #0
    movi v19.4s, #0
    movi v20.4s, #0
    movi v21.4s, #0
    movi v22.4s, #0
    movi v23.4s, #0
    movi v24.4s, #0
    movi v25.4s, #0
    movi v26.4s, #0
    movi v27.4s, #0
    movi v28.4s, #0
    movi v29.4s, #0
    movi v30.4s, #0
    movi v31.4s, #0

    mov x13, x1
    mov x14, x2
    mov x9, x6
    L16LoopH:
        mov x10, x5
        L16LoopW:
            ld1 {v7.4s}, [x2], #16
            ld1 {v0.4s}, [x1], x4
            subs x10, x10, #1
            ld1 {v1.4s}, [x1], x4
            fmla v16.4s, v7.4s, v0.4s
            fmla v17.4s, v7.4s, v1.4s
            ld1 {v2.4s}, [x1], x4
            ld1 {v3.4s}, [x1], x4
            fmla v18.4s, v7.4s, v2.4s
            fmla v19.4s, v7.4s, v3.4s
            ld1 {v0.4s}, [x1], x4


/// <summary>
        /// ReconcileButton control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::ClearCanvas.ImageServer.Web.Common.WebControls.UI.ToolbarButton ReconcileButton;

        /// <summary>
        /// Panel2 control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.Panel Panel2;

        /// <summary>
        /// GridPagerTop contro


X_R	stx	%r3, [%r8 + %r9]
	.word 0xeb1a0009  ! 360: LDDF_R	ldd	[%r8, %r9], %f21
	.word 0x32800002  ! 360: BNE	bne,a	<label_0x2>
	.word 0xcf3a0009  ! 363: STDF_R	std	%f7, [%r9, %r8]
	.word 0xea020009  ! 363: LDUW_R	lduw	[%r8 + %r9], %r21
	.word 0xe6ca2ac4  ! 363: LDSBA_I	ldsba	[%r8, + 0x0ac4] %asi, %r19
	.word 0xc4720009  ! 366: STX_R	stx	%r2, [%r8 + %r9]
	.word 0xf40a0009  ! 366: LDUB_R	ldub	[%r8 + %r9], %r26
	.word 0xc36a22a4  ! 366: PREFETCH_I	prefetch	[%r8 + 0x02a4], #one_read
	.word 0xe0320009  ! 369: STH_R	sth	%r16, [%r8 + %r9]
	.word 0xee520009  ! 369: LDSH_R	ldsh	[%r8 + %r9], %r23
	.word 0x3e800001  ! 369: BVC	bvc,a	<label_0x1>
	.word 0xc5220009  ! 372: STF_R	st	%f2, [%r9, %r8]
	.word 0xc45a0009  ! 372: LDX_R	ldx	[%r8 + %r9], %r2
	.word 0x8143e056  ! 372: MEMBAR	membar	#StoreLoad | #LoadStore | #Lookaside | #Sync
	.word 0xce2a0009  ! 375: STB_R	stb	%r7, [%r8 + %r9]
	.word 0xe0520009  ! 375: LDSH_R	ldsh	[%r8 + %r9], %r16
	.word 0xbba20929  ! 375: FMULs	fmuls	%f8, %f9, %f29
	.word 0xf2720009  ! 378: STX_R	stx	%r25, [%r8 + %r9]
	.word 0xcd020009  ! 378: LDF_R	ld	[%r8, %r9], %f6
	.word 0x8c720009  ! 378: UDIV_R	udiv 	%r8, %r9, %r6
	.word 0xda220009  ! 381: STW_R	stw	%r13, [%r8 + %r9]
	.word 0xce0a0009  ! 381: LDUB_R	ldub	[%r8 + %r9], %r7
	.word 0x8a522ae4  ! 381: UMUL_I	umul 	%r8, 0x0ae4, %r5
	.word 0xca720009  ! 384: STX_R	stx	%r5, [%r8 + %r9]
	.word 0xc8520009  ! 384: LDSH_R	ldsh	[%r8 + %r9], %r4
	.word 0x8143e01e  ! 384: MEMBAR	membar	#StoreLoad | #LoadStore | #StoreStore | #Lookaside
	.word 0xc42a0009  ! 387: STB_R	stb	%r2, [%r8 + %r9]
	.word 0xc51a0009  ! 387: LDDF_R	ldd	[%r8, %r9], %f2
	.word 0x8143c000  ! 387: STBAR	st


d() ?? nanoid();

    if (DateTime.now().difference(_lastSent!).abs() > sessionExpiration) {
      _sessionId = nanoid();
    }

    _saveSessionId();
  }

  Future<void> _setUserIdIfNeeded({bool force = false}) async {
    if (force) {
      _userId = ("anon:${nanoid()}");
    } else {
      _userId ??= await _getUserId() ?? ("anon:${nanoid()}");
    }

    _saveUserId();
  }

  Future<void> _setLastSentIfNeeded() async {
    _lastSent ??= await _getLastSent() ?? DateTime.now();
    _saveLastSent();
  }
}

extension _LukehogStorage on LukehogClient {
  static const _sessionIdKey = 'lukehog-session-id';
  static const _userIdKey = 'lukehog-user-id';
  static const _lastSentKey = 'lukehog-last-sent';

  Future<void> _saveSessionId() async {
    final fn = setString;
    final x = _sessionId;
    if (fn == null || x == null) return;
    await fn(_sessionIdKey, x);
  }

  Future<String?> _getSessionId() async {
    final fn = getString;
    if (fn == null) return null;
    return fn(_sessionIdKey);
  }

  Future<void> _saveUserId() async {
    final fn = setString;
    final x = _userId;
    if (fn == null || x == null) return;
    await fn(_userIdKey, x);
  }

  Future<String?> _getUserId() async {
    final fn = getString;
    if (fn == null) return null;
    return fn(_userIdKey);
  }

  Future<void> _saveLastSent() async {
    final fn = setString;
    final x = _lastSent;
    if (fn == null || x == null) return;
    await fn(_lastSentKey, x.toIso8601String());
  }

  Future<DateTime?> _getLastSent() async {
    final fn = getString;
    if (fn == null) return null;
    return DateTime.tryParse(await fn(_lastSentKey) ?? '');
  }
}

/// Controls the request shape
enum LukehogServerType {
  /// POST events to baseUrl/events/{appId}
  ///
  /// HEADERS none
  lukehog,

  /// POST events to baseUrl
  ///
  /// HEADERS Authorization: Bearer {appId}
  custom,
}
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member
// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter

part of 'key_pair.dart';

class KeyPairMapper extends ClassMapperBase<KeyPair> {
  KeyPairMapper._();

  static KeyPairMapper? _instance;
  static KeyPairMapper ensureInitialized() {
    if (_instance == null) {
      MapperContainer.globals.use(_instance = KeyPairMapper._());
    }
    return _instance!;
  }

  @override
  final String id = 'KeyPair';

  static String _$appId(KeyPair v) => v.appId;
  static const Field<KeyPair, String> _f$appId = Field('appId', _$appId);
  static String _$adminKey(KeyPair v) => v.adminKey;
  static const Field<KeyPair, String> _f$adminKey =
      Field('adminKey', _$adminKey);

  @override
  final MappableFields<KeyPair> fields = const {
    #appId: _f$appId,
    #adminKey: _f$adminKey,
  };

  static KeyPair _instantiate(DecodingData data) {
    return KeyPair(appId: data.dec(_f$appId), adminKey: data.dec(_f$adminKey));
  }

  @override
  final Function instantiate = _instantiate;

  static KeyPair fromMap(Map<String, dynamic> map


 moj.memes.base.viewslice.BaseViewSlice
import moj.memes.base.model.Meme
import moj.memes.list.viewslice.list.ListViewSlice.Action
import moj.memes.list.viewslice.list.adapter.MemesAdapter
import javax.inject.Inject

class ListViewSliceImpl @Inject constructor(
        private val actionLiveData: MutableLiveData<Action>,
        private val layoutManager: LinearLayoutManager,
        private val adapter: MemesAdapter
) : BaseViewSlice(),
        ListViewSlice {

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    fun onCreate() {
        setUpRecyclerView()
    }

    private fun setUpRecyclerView() {
        memes_recycler_view.layoutManager = layoutManager
        memes_recycler_view.adapter = adapter
    }

    override fun getAction(): LiveData<Action> = actionLiveData

    override fun showMemes(memes: List<Meme>) {
        adapter.setMemes(memes)
    }
}
package com.example.hamsterkombatbot.model

import androidx.annotation.Keep
import com.google.gson.annotations.SerializedName

@Keep
data class Upgrade(
    @SerializedName("condition") val condition: Condition,
    @SerializedName("cooldownSeconds") val cooldownSeconds: List<CooldownSecond>, // 0
    @SerializedName("expiresAt") val expiresAt: String, // 2024-04-17T15:00:00.000Z
    @SerializedName("id") val id: String, // support_team
    @SerializedName("maxLevel") val maxLevel: Int, // 1
    @SerializedName("name") val name: String, // Support team
    @SerializedName("price") val price: Int, // 750
    @SerializedName("profitPerHour") val profitPerHour: Int, // 70
    @SerializedName("section") val section: String, // PR&Team
    @SerializedName("welcomeCoins") val welcomeCoins: Int // 7500000
) {
    @Keep
    data class Condition(
        @SerializedName("channelId") val channelId: Long, // -1002075341442
        @SerializedName("level") val level: Int, // 5
        @SerializedName("link") val link: String, // https://t.me/+kK14mIuJR2hlMmNi
        @SerializedName("links") val links: List<String>,
        @SerializedName("moreReferralsCount") val moreReferralsCount: Int, // 1
        @SerializedName("referralCount") val referralCount: Int, // 2
        @SerializedName("subscribeLink")
        val subscribeLink:
            String, // https://www.youtube.com/@HamsterKombat_Official?sub_confirmation=1
        @SerializedName("_type") val type: String, // ByUpgrade
        @SerializedName("upgradeId") val upgradeId: String // facebook_ads
    )

    @Keep
    data class CooldownSecond(
        @SerializedName("cooldownSeconds") val cooldownSeconds: Int, // 0
        @SerializedName("level") val level: Int // 1
    )
}
package com.example.hamsterkombatbot.other

import android.content.Context
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStreamWriter
import okhttp3.logging.HttpLoggingInterceptor

class OkHttpFileLogger(val name: String, val context: Context) : HttpLoggingInterceptor.Logger {
    private val file = File(context.filesDir, name)
    private val maxFileSize = 10 * 1024 * 1024 // 10MB in bytes

    override fun log(message: String) {
        if (file.exists() && file.length() > maxFileSize) {
            handleFileOverflow()
        }
        writeToLogFile(message)
    }

    private fun handleFileOverflow() {
        // Option 1: Clear the file content
        file.writeText("")

        // Option 2: Delete the file and create a new one
        // file.delete()
        // file.createNewFile()

        // Option 3: Archive the file and create a new one (not implemented here)
    }

    private fun writeToLogFile(message: String) {
        FileOutputStream(file, true).use { fos ->
            OutputStreamWriter(fos).use { writer ->
                writer.append(message)
                writer.append("\n")


using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.IO;
using System.Linq;
using GameRealisticMap.Arma3;

namespace GameRealisticMap.Studio.Modules.Arma3Data.Services
{
    [Export(typeof(IArma3ModsService))]
    internal class Arma3ModsService : IArma3ModsService
    {
        public static string[] CreatorDlcIds = new string[] { "1175380", "1042220" };

        public Arma3ModsService()
        {
            CreatorDlc = [
                new ModInfo("CDLC: Spearhead 1944", Path.Combine(Arma3ToolsHelper.GetArma3Path(), "SPE"), "1175380", "ww2", "https://drive.google.com/uc?export=download&id=19RTlnWngHzzYrVc1BFm6DqM3SnK44V1u"),
                new ModInfo("CDLC: Global Mobilization", Path.Combine(Arma3ToolsHelper.GetArma3Path(), "gm"), "1042220", "gm", "http://global-mobilization.com/samples/gm_terrain_substitutes.zip"),
                ];
        }

        public IReadOnlyList<ModInfo> CreatorDlc { get; }

        public ModInfo? GetMod(string steamId)
        {
            var cdlc = CreatorDlc.FirstOrDefault(d => d.SteamId == steamId);
            if (cdlc != null && Directory.Exists(cdlc.Path))
            {
                return cdlc;
            }
            var wk = Arma3ToolsHelper.GetArma3WorkshopPath();
            if (!string.IsNullOrEmpty(wk))
            {
                var d = Path.Combine(wk, steamId);
                if ( Directory.Exists(d) )
                {
                    return new ModInfo(GetModName(d), Path.Combine(d, "addons"), Path.GetFileName(d));
                }


   SCIC_SDS_REMOTE_DEVICE_T *this_device = (SCIC_SDS_REMOTE_DEVICE_T *)object;

   SET_STATE_HANDLER(
      this_device,
      scic_sds_remote_device_state_handler_table,
      SCI_BASE_REMOTE_DEVICE_STATE_FINAL
   );
}

// ---------------------------------------------------------------------------

SCI_BASE_STATE_T
   scic_sds_remote_device_state_table[SCI_BASE_REMOTE_DEVICE_MAX_STATES] =
{
   {
      SCI_BASE_REMOTE_DEVICE_STATE_INITIAL,
      scic_sds_remote_device_initial_state_enter,
      NULL
   },
   {
      SCI_BASE_REMOTE_DEVICE_STATE_STOPPED,
      scic_sds_remote_device_stopped_state_enter,
      NULL
   },
   {
      SCI_BASE_REMOTE_DEVICE_STATE_STARTING,
      scic_sds_remote_device_starting_state_enter,
      NULL
   },
   {
      SCI_BASE_REMOTE_DEVICE_STATE_READY,
      scic_sds_remote_device_ready_state_enter,
      scic_sds_remote_device_ready_state_exit
   },
   {
      SCI_BASE_REMOTE_DEVICE_STATE_STOPPING,
      scic_sds_remote_device_stopping_state_enter,
      NULL
   },
   {
      SCI_BASE_REMOTE_DEVICE_STATE_FAILED,
      scic_sds_remote_device_failed_state_enter,
      NULL
   },
   {
      SCI_BASE_REMOTE_DEVICE_STATE_RESETTING,
      scic_sds_remote_device_resetting_state_enter,
      scic_sds_remote_device_resetting_state_exit
   },
#if !defined(DISABLE_WIDE_PORTED_TARGETS)
   {  //Not used by SCIC
      SCI_BASE_REMOTE_DEVICE_STATE_UPDATING_PORT_WIDTH,
      NULL,
      NULL
   },
#endif //#if !defined(DISABLE_WIDE_PORTED_TARGETS)
   {
      SCI_BASE_REMOTE_DEVICE_STATE_FINAL,
      scic_sds_remote_device_final_state_enter,
      NULL
   }
};


nerItem) =>
          outerItem.value + " " + (innerItem ? innerItem.value : "no match"),
        createMapFactory()
      )
    );

    expect([...items]).toEqual([
      "chris sperry",
      "chris pike",
      "andrew johnson",
      "not relevant no match",
    ]);
  });

  test("skip", () => {
    expect([...pp([1, 2, 3], skip(1))]).toEqual([2, 3]);
  });
  test("take", () => {
    expect([...pp([1, 2, 3], take(2))]).toEqual([1, 2]);
  });
  test("sum", () => {
    expect(pp([1, 2, 3], sum())).toEqual(6);
  });
  test("union", () => {
    const u = pp(range(0, 10), union(range(5, 10)));
    expect([...u]).toEqual([...range(0, 15)]);
  });
  test("zip", () => {
    expect(
      pp(
        [1, 2],
        zip([2, 1], (a, b) => [a, b]),
        toArray()
      )
    ).toEqual([
      [1, 2],
      [2, 1],
    ]);
    expect(
      pp(
        [1, 2],
        zip([2, 1, 5], (a, b) => [a, b]),
        toArray()
      )
    ).toEqual([
      [1, 2],
      [2, 1],
    ]);
    expect(
      pp(
        [1, 2, 5],
        zip([2, 1], (a, b) => [a, b]),
        toArray()
      )
    ).toEqual([
      [1, 2],
      [2, 1],
    ]);
  });
  test("maxBy, minBy", () => {
    interface Person {
      name: string;
      age: number;
    }
    const arr: Person[] = [
      { name: "chris", age: 44 },
      { name: "nicole", age: 48 },
      { name: "pav", age: 45 },
      { name: "luke", age: 41 },
    ];
    expect(
      pp(
        arr,
        maxBy((x) => x.age),
        first()
      ).name
    ).toBe("nicole");
    expect(
      pp(
        arr,
        minBy((x) => x.age),
        first()
      ).name
    ).toBe("luke");
    expect(
      pp(
        arr,
        take(0),
        minBy((x) => x.age),
        toArray()
      )
    ).toEqual([]);
    expect(
      pp(
        [0, 0],
        minBy((x) => x),
        toArray()
      )
    ).toEqual([0, 0]);
    expect(
      pp(
        [0, 0],
        maxBy((x) => x),
        toArray()
      )
    ).toEqual([0, 0]);
    const inverseComparer = <T>(a: T, b: T) => defaultComparer(b, a);
    expect(
      pp(
        arr,
        maxBy((x) => x.age, inverseComparer),
        first()
      ).name
    ).toBe("luke");
    expect(
      pp(
        arr,
        minBy((x) => x.age, inverseComparer),
        first()
      ).name
    ).toBe("nicole");
  });
  test("append", () => {
    expect(pp([1, 2], append(3), toArray())).toEqual([1, 2, 3]);
  });
  test("prepend", () => {
    expect(pp([1, 2], prepend(3), toArray())).toEqual([3, 1, 2]);
  });
  test("flatten", () => {
    expect(
      pp(
        [1, 2],
        select((x) => repeat(x, 2)),
        flatten(),
        toArray()
      )
    ).toEqual([1, 1, 2, 2]);
  });
  test("zipAll", () => {
    const b = [
      [1, 2],
      [1, 2, 3],


4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qc1xuLy8gbW9kdWxlIGlkID0gMTFcbi8vIG1vZHVsZSBjaHVua3MgPSA5Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///11\n");

/***/ }),
/* 12 */
/***/ (function(module, exports) {

eval("module.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzPzVkMjMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpO1xuICByZXR1cm4gaXQ7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzXG4vLyBtb2R1bGUgaWQgPSAxMlxuLy8gbW9kdWxlIGNodW5rcyA9IDkiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///12\n");

/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY


.5, 1.0, 0.0, 0.5, 0.5, 0.5, 1.0, 0.0, -0.5, 0.5, 0.5, 0.0, 0.0, -0.5, 0.5, -0.5, 0.0, 1.0,
        ];
        // world space positions of our cubes
        let cube_positions: [Vector3<f32>; 10] = [
            vec3(0.0, 0.0, 0.0),
            vec3(2.0, 5.0, -15.0),
            vec3(-1.5, -2.2, -2.5),
            vec3(-3.8, -2.0, -12.3),
            vec3(2.4, -0.4, -3.5),
            vec3(-1.7, 3.0, -7.5),
            vec3(1.3, -2.0, -2.5),
            vec3(1.5, 2.0, -2.5),
            vec3(1.5, 0.2, -1.5),
            vec3(-1.3, 1.0, -1.5),
        ];

        let vao = gl::gen_vertex_array();
        let vbo = gl::gen_buffer();

        gl::bind_vertex_array(vao);

        gl::bind_buffer(GL_ARRAY_BUFFER, vbo);
        gl::buffer_data(GL_ARRAY_BUFFER, &vertices, GL_STATIC_DRAW);

        let stride = 5 * mem::size_of::<f32>() as i32;
        // position attribute
        gl::vertex_attrib_pointer_offset(0, 3, GL_FLOAT, false, stride, 0);
        gl::enable_vertex_attrib_array(0);
        // texture coord attribute
        gl::vertex_attrib_pointer_offset(1, 2, GL_FLOAT, false, stride, 3 * mem::size_of::<f32>() as u32);
        gl::enable_vertex_attrib_array(1);

        // load and create a texture

        // texture 1

        let texture1 = gl::gen_texture();
        gl::bind_texture(GL_TEXTURE_2D, texture1);
        // set the texture wrapping parameters
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT as i32); // set texture wrapping to GL_REPEAT (default wrapping method)
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT as i32);
        // set texture filtering parameters
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR as i32);
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR as i32);
        // load image, create texture and generate mipmaps
        let img = image::open(assets!("textures/container.jpg")).expect("Failed to load texture");
        let data = img.as_bytes();
        gl::tex_image_2d(
            GL_TEXTURE_2D,
            0,
            GL_RGB as i32,
            img.width() as i32,
            img.height() as i32,
            0,
            GL_RGB,
            GL_UNSIGNED_BYTE,
            &data,
        );
        gl::generate_mipmap(GL_TEXTURE_2D);

        // texture 2

        let texture2 = gl::gen_texture();
        gl::bind_texture(GL_TEXTURE_2D, texture2);
        // set the texture wrapping parameters
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT as i32); // set texture wrapping to GL_REPEAT (default wrapping method)
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT as i32);
        // set texture filtering parameters
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR as i32);
        gl::tex_parameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR as i32);
        // load image, create texture and generate mipmaps
        let img = image::open(assets!("textures/awesomeface.png")).expect("Failed to load texture");
        let img = img.flipv(); // flip loaded texture on the y-


stranga malhelo inter la arboj kaj neniam fariĝis mallumo kaj nokto. En la arbaro regis silento. Turdo kaj kukolo ne plu aŭdiĝis, ĉiuj vulpidoj rampis en sian kavon, ĉiuj sciuridoj kaj leporidoj en siajn nestojn, la vipurino sub sian ŝtonon. Nenio estis aŭdebla krom mal-serena hoado de malproksime, kaj baldaŭ eĉ ĝi silentis. Estis kiel se la tuta arbaro dormus. Sed nun ĝi malrapide vekiĝis al krepuska vivo, ĉiuj krepuskaj estaĵoj, kiuj vivis tie, komencis moviĝi. Susuris kaj rampis kaj kaŭris en la musko. Pugoniĉ-

R O N J O , RABISTA FILINO

joj paŝetis inter la arboj, vilaj krepuskaj troloj rampis malantaŭ grandaj ŝtonoj, kaj grizgnomoj venis en amasoj krablan-te el siaj kaŝejoj kaj siblis por timigi ĉiujn, kie ili pasis. Malsupren de la montoj ŝvebis la sovaĝaj harpioj, la plej kruelaj kaj plej frenezaj el ĉiuj krepuskaj estaĵoj. Ili estis tute nigraj kontraŭ la luma printempa ĉielo. Ronjo vidis ilin, kaj ŝi ne ŝatis tion.

”ĉi tie estas pli da fantomaĵoj ol estas utile. Kaj nun mi volas iri hejmen, malseka kaj blufrapita kia mi estas.”

”Malseka kaj blufrapita vi estas,” Birk diris. ”Sed nun vi ankaŭ estis en la printempo dum la tuta tago.”

Ronjo sciis, ke ŝi restis tro longe en la arbaro. Post kiam ŝi disiĝis de Birk, ŝi provis elpensi, kiel ŝi povus manipuli Matison por igi lmpreni, kial ŝi devis resti en la printempo ĝis malfrua vespero.

Sed nek Matiso nek iu alia rimarkis aŭ atentis, kiam ŝi alvenis en la ŝtonhalon. Tie ili havis alian problemon.

Sur felo antaŭ la fajro kußis Sturko, pala kaj kun fermitaj okuloj. Apud li kuŝis Loviso surgenue kaj prizorgis vundon sur lia kolo. ĉiuj aliaj rabistoj staris senkuraĝe ĉirkaŭe kaj rigardis. Nur Matiso trotis tien kaj reen sur la planko kiel kolerega urso. Li kriis kaj bruegis.

”Ho, tiuj fekuloj de la Borka gento kaj iliaj fekrabistoj. Ho, tiuj banditoj. Ho, sed mi forigos ilin, unu post la alia, ĝis neniu el ili movos manon aŭ piedon plu en ĉi tiu vivo. Ho, ho!”

Poste mankis al li vortoj, kaj venis nur kriegoj, kiuj ne ĉesis antaŭ ol Loviso severe montris al Sturko. Tiam Matiso komprenis, ke la kompatindulo ne bonfartas de troa bruo, kaj li kontraŭvole silentis.

Ronjo komprenis, ke Matiso nun ne estas la ĝusta perso-

R O N J O , RABISTA FILINO

no por interparolo.


.google.com/books/content/images/frontcover/s9tf70Wk3bYC?fife=w150" width="100" /><img src="https://ai2-s2-public.s3.amazonaws.com/figures/2017


example"})
	if err != nil {
		log.Fatalf("Failed to write CSV header: %v", err)
	}

	for _, namedErr := range generateErrors() {
		err = w.Write([]string{namedErr.name, namedErr.Error()})
		if err != nil {
			log.Fatalf("Failed to write CSV row: %v", err)
		}
	}

}

func validateDocLinks() {

	var failed bool

	for _, namedErr := range generateErrors() {
		hasDocumentationLink, ok := namedErr.error.(errors.HasDocumentationLink)
		if !ok {
			continue
		}

		link := hasDocumentationLink.DocumentationLink()
		if link == placeholderString {
			continue
		}

		resp, err := http.Head(link)
		if err != nil {
			log.Printf("Error checking documentation link for error %q: %v", namedErr.name, err)
			continue
		}

		if resp.StatusCode != http.StatusOK {
			log.Printf("Invalid documentation link for error %q: %v", namedErr.name, link)
			failed = true
		}
	}

	if failed {
		os.Exit(1)
	}
}
/*
 * Cadence - The resource-oriented smart contract programming language
 *
 * Copyright Flow Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package main

import (
	"go/token"
	"go/types"
	"io"
	"log"
	"os"
	"path/filepath"
	"strconv"

	"github.com/dave/dst"
	"github.com/dave/dst/decorator"
	"github.com/dave/dst/decorator/resolver/guess"
	"golang.org/x/tools/go/packages"
)

const header = `// Code generated by main.go. DO NOT EDIT.

`

// NOTE: must be formatted/injected , as otherwise
// it will be detected itself as a go generate invocation itself
const goGenerateComment = "//go:generate go run ./gen errors.go\n\n"

func main() {

	if len(os.Args) != 2 {
		log.Fatalf("Usage: %s <file>", os.Args[0])
	}

	target := os.Args[1]

	pkgs, err := packages.Load(
		&packages.Config{
			Mode: packages.NeedImports | packages.NeedTypes,
		},
		"github.com/onflow/cadence/parser",
		"github.com/onflow/cadence/sema",
	)
	if err != nil {
		log.Fatalf("Failed to load packages: %v", err)
	}

	parserPkg, semaPkg := pkgs[0], pkgs[1]

	var errors []dst.Expr

	// Get the 'parser.ParseError' interface type
	parserPkgScope := parserPkg.Types.Scope()
	parseErrorType := parserPkgScope.Lookup("ParseError").Type().Underlying().(*types.Interface)
	errors = append(
		errors,
		namedErrorElements(
			parserPkg,
			parserPkgScope,
			parseErrorType,
		)...,
	)

	// Get the 'sema.SemanticError' interface type
	semaPkgScope := semaPkg.Types.Scope()
	semanticErrorTy


/*
(C) Copyright IBM Corp. 2009

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of IBM nor the names of its contributors may be
used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/

#include <math.h>
#include "local.h"

/* On platforms where long double is as wide as double.  */
#ifdef _LDBL_EQ_DBL
long long int
llroundl (long double x)
{
  return llround(x);
}
#endif


public Int32 RemoveItem(Int32 index)
		{
			return Factory.ExecuteInt32MethodGet(this, "RemoveItem", index);
		}

		/// <summary>
		/// SupportByVersion Excel 9, 10, 11, 12, 14, 15, 16
		/// </summary>
		/// <param name="index">optional object index</param>
		[SupportByVersion("Excel", 9,10,11,12,14,15,16)]
		public object List(object index)
		{
			re


.

قم بتنزيل الوحدات الوظيفية الرئيسية لموقع الويب Xiaofeitu بأكمله. 1. وحدة تنزيل الموقع بالكامل؛ 2. تنزيل دفعة واحدة للصفحات؛ 3. تنزيل دفعة واحدة للموقع بأكمله؛ 4. تنزيل صور الموقع بالكامل؛ 5. اكتشاف الروابط الميتة لموقع الويب، 6. إنشاء روابط للموقع بالكامل.

تنزيل الموقع بالكامل: قم بتنزيل موقع الويب بالكامل على محرك الأقراص الثابتة المحلي لديك وتصفحه محليًا.

تنزيل مجموعة صفحات الويب: قم بتنزيل صفحات القالب، وتحديد رموز مواقع الويب المختلفة تلقائيًا وتحويلها إلى رموز متسقة.

تنزيل دفعة الموقع بالكامل: إنها وظيفة موسعة لتنزيل الموقع بالكامل، مما يسمح بتنزيل تنزيل الموقع بالكامل على دفعات كبيرة.

تنزيل صورة الموقع بالكامل: قم بتنزيل صور الموقع بالكامل على محرك الأقراص الثابتة المحلي لديك.

كشف الروابط الميتة لموقع الويب: اكتشف ما إذا كان موقع الويب يحتوي على روابط ميتة.

إنشاء روابط للموقع بالكامل: إنشاء عناوين مواقع الويب لتقديمها إلى محركات البحث مثل Baidu.

سمات

1. تخصيص بنية الملف.

2. تحويل ترميز الموقع.

3. قم بتعيين علامات الارتباط التشعبي المخصصة وعلامات الصور المخصصة وعلامات البرنامج النصي المخصصة.

4. القدرة على التعرف على التسمية الذكية.

5. ترجمة صفحات الويب: الصينية المبسطة والتقليدية، ومن الإنجليزية إلى الصينية.

6. حذف التعليمات البرمجية غير المفيدة في الصفحة، مثل إحصائيات الموقع، وإعلانات الصفحة، وكود التحميل المسبق، وما إلى ذلك.

7. إعدادات وكيل المتشعب.

ب


t = readuint32_t(c, optarg);
            break;
        case 't':
            timeCost = readuint32_t(c, optarg);
            break;
        case 'l':
            lanes = readuint32_t(c, optarg);
            break;
        case 'P':
            parallelism = readuint32_t(c, optarg);
            break;
        case 'b':
            blockSize = readuint32_t(c, optarg);
            break;
        case 'B':
            subBlockSize = readuint32_t(c, optarg);
            break;
        default:
            usage("Invalid argument");
        }
    }
    if(optind + 1 == argc) {
        // Must have supplied a hash type
        hashName = argv[optind];
        hashType = TwoCats_FindHashType(argv[optind]);
        if(hashType == TWOCATS_NONE) {
            usage("Unsupported hash type: %s\n", hashName);
        }
    } else if(optind != argc) {
        usage("Too many arguments\n");
    }

    printf("hash:%s memCost:%u timeCost:%u multiplies:%u lanes:%u parallelism:%u\n",
        hashName, memCost, timeCost, multiplies, lanes, parallelism);
    printf("algorithm:%s password:%s salt:%s blockSize:%u subBlockSize:%u\n",
        algorithm, password, salt, blockSize, subBlockSize);
    uint8_t derivedKeySize = TwoCats_GetHashTypeSize(hashType);
    uint8_t derivedKey[derivedKeySize];
    if(!strcmp(algorithm, "twocats-extended")) {
        if(!TwoCats_HashPasswordExtended(hashType, derivedKey, password, passwordSize,
                salt, saltSize, NULL, 0, memCost, memCost, timeCost, multiplies, lanes, parallelism,
                blockSize, subBlockSize, overwriteCost, false, false)) {
            fprintf(stderr, "Key stretching failed.\n");
            return 1;
        }
    } else if(!strcmp(algorithm, "twocats-full")) {
        if(!TwoCats_HashPasswordFull(hashType, derivedKey, password, passwordSize,
                salt, saltSize, memCost, timeCost, parallelism, false)) {
            fprintf(stderr, "Key stretching failed.\n");
            return 1;
        }
    } else if(!strcmp(algorithm, "twocats")) {
        if(!TwoCats_HashPassword(hashType, derivedKey, password, passwordSize,
                salt, saltSize, memCost, false)) {
            fprintf(stderr, "Key stretching failed.\n");
            return 1;
        }
    } else if(!strcmp(algorithm, "skinnycat")) {
        if(!SkinnyCat_HashPassword(hashType, derivedKey, password, passwordSize, salt, saltSize, memCost, false)) {
            fprintf(stderr, "Key stretching failed.\n");
            return 1;
        }
    } else if(!strcmp(algorithm, "phs")) {
        if(PHS(derivedKey, derivedKeySize, password, passwordSize, salt, saltSize, timeCost, memCost)) {
            fprintf(stderr, "Key stretching failed.\n");
            return 1;
        }
    } else {
        usage("Invalid algorithm: %s\n", algorithm);
    }
    TwoCats_PrintHex("", derivedKey, derivedKeySize);
    return 0;
}


.photo, color: Colors.red);
      case FileFormat.pdf:
        return const Icon(FontAwesomeIcons.filePdf, color: Colors.red);
      case FileFormat.text:
        return const Icon(Icons.insert_drive_file, color: Colors.blue);
      case FileFormat.video:
        return const Icon(Icons.movie, color: Colors.red);
      case FileFormat.zip:
        return const Icon(FontAwesomeIcons.box);
      case FileFormat.unknown:
        return Icon(Icons.insert_drive_file, color: Colors.grey[600]);
    }
  }
}
// Copyright (c) 2025 Sharezone UG (haftungsbeschränkt)
// Licensed under the EUPL-1.2-or-later.
//
// You may obtain a copy of the Licence at:
// https://joinup.ec.europa.eu/software/page/eupl
//
// SPDX-License-Identifier: EUPL-1.2

import 'dart:typed_data';

import 'package:bloc_provider/bloc_provider.dart';
import 'package:files_basics/local_file.dart';
import 'package:files_usecases/file_downloader.dart';
import 'package:files_usecases/file_saver.dart';
import 'package:filesharing_logic/filesharing_logic_models.dart';
import 'package:flutter/material.dart';
import 'package:platform_check/platform_check.dart';
import 'package:sharezone/filesharing/bloc/file_sharing_page_bloc.dart';
import 'package:sharezone/filesharing/logic/open_cloud_file.dart';
import 'package:sharezone/filesharing/widgets/card_with_icon_and_text.dart';
import 'package:sharezone/filesharing/widgets/cloud_file_icon.dart';
import 'package:sharezone/filesharing/widgets/sheet.dart';

class FileGridCard extends StatelessWidget {
  const FileGridCard({
    super.key,
    required this.cloudFile,
    required this.courseId,
  });

  final CloudFile cloudFile;
  final String courseId;

  @override
  Widget build(BuildContext context) {
    final bloc = BlocProvider.of<FileSharingPageBloc>(context);
    return CardWithIconAndText(
      height: 256,
      icon: FileIcon(fileFormat: cloudFile.fileFormat),
      text: cloudFile.name,
      onTap: () => openCloudFilePage(context, cloudFile, courseId),
      bottom: Expanded(child: _FileGridCardBottom(cloudFile: cloudFile)),
      trailing: IconButton(
        icon: const Icon(Icons.more_vert),
        onPressed:
            () => showCloudFileSheet(
              cloudFile: cloudFile,
              context: context,
              bloc: bloc,
            ),
      ),
    );
  }
}

class _FileGridCardBottom extends StatelessWidget {
  const _FileGridCardBottom({required this.cloudFile});

  final CloudFile cloudFile;

  @override
  Widget build(BuildContext context) {
    if (cloudFile.downloadURL == null) return const SizedBox();

    if (cloudFile.fileFormat != FileFormat.image) {
      return Center(
        child: IconTheme(
          data: Theme.of(context).iconTheme.copyWith(size: 80),
          child: FileIcon(fileFormat: cloudFile.fileFormat),
        ),
      );
    }

    return Padding(
      padding: const EdgeInsets.only(right: 8, top: 4),
      child: ClipRRect(
        key: Key(cloudFile.id!),
        borderRadius: const BorderRadius.all(Radius.circular(8)),
        child:
            PlatformCheck.isWeb
                ? _ImagePreviewWeb(cloudFile: cloudFile)
                : _ImagePreviewNative(cloudFile: cloudFile),
      ),
    );
  }
}

class _ImagePreviewWeb extends StatelessWidget {
  const _ImagePreviewWeb({required this.cloudFile});

  final CloudFile cloudFile;

  @override
  Widget build(BuildContext context) {
    return FutureBuilder<Uint8List>(
      future: getFileSaver()!.downloadAndReturnBytes(cloudFile.downloadURL!),
      builder: (context, resultSnapshot) {
        if (resultSnapshot.hasError) {
          return const Center(
            child: Icon(Icons.error_outline, color: Colors.red),
          );
        }

        return AnimatedSwitcher(
          du


RQHandler
TIM7_IRQHandler
DMA2_Stream0_IRQHandler
DMA2_Stream1_IRQHandler
DMA2_Stream2_IRQHandler
DMA2_Stream3_IRQHandler
DMA2_Stream4_IRQHandler
FDCAN_CAL_IRQHandler
DFSDM1_FLT4_IRQHandler
DFSDM1_FLT5_IRQHandler
DFSDM1_FLT6_IRQHandler
DFSDM1_FLT7_IRQHandler
DMA2_Stream5_IRQHandler
DMA2_Stream6_IRQHandler
DMA2_Stream7_IRQHandler
USART6_IRQHandler
I2C3_EV_IRQHandler
I2C3_ER_IRQHandler
OTG_HS_EP1_OUT_IRQHandler
OTG_HS_EP1_IN_IRQHandler
OTG_HS_WKUP_IRQHandler
OTG_HS_IRQHandler
DCMI_PSSI_IRQHandler
CRYP_IRQHandler
HASH_RNG_IRQHandler
FPU_IRQHandler
UART7_IRQHandler
UART8_IRQHandler
SPI4_IRQHandler
SPI5_IRQHandler
SPI6_IRQHandler
SAI1_IRQHandler
LTDC_IRQHandler
LTDC_ER_IRQHandler
DMA2D_IRQHandler
SAI2_IRQHandler
OCTOSPI1_IRQHandler
LPTIM1_IRQHandler
CEC_IRQHandler
I2C4_EV_IRQHandler
I2C4_ER_IRQHandler
SPDIF_RX_IRQHandler
DMAMUX1_OVR_IRQHandler
DFSDM1_FLT0_IRQHandler
DFSDM1_FLT1_IRQHandler
DFSDM1_FLT2_IRQHandler
DFSDM1_FLT3_IRQHandler
SWPMI1_IRQHandler
TIM15_IRQHandler
TIM16_IRQHandler
TIM17_IRQHandler
MDIOS_WKUP_IRQHandler
MDIOS_IRQHandler
JPEG_IRQHandler
MDMA_IRQHandler
SDMMC2_IRQHandler
HSEM1_IRQHandler
DAC2_IRQHandler
DMAMUX2_OVR_IRQHandler
BDMA2_Channel0_IRQHandler
BDMA2_Channel1_IRQHandler
BDMA2_Channel2_IRQHandler
BDMA2_Channel3_IRQHandler
BDMA2_Channel4_IRQHandler
BDMA2_Channel5_IRQHandler
BDMA2_Channel6_IRQHandler
BDMA2_Channel7_IRQHandler
COMP_IRQHandler
LPTIM2_IRQHandler
LPTIM3_IRQHandler
UART9_IRQHandler
USART10_IRQHandler
LPUART1_IRQHandler
CRS_IRQHandler
ECC_IRQHandler
DTS_IRQHandler
WAKEUP_PIN_IRQHandler
OCTOSPI2_IRQHandler
OTFDEC1_IRQHandler
OTFDEC2_IRQHandler
GFXMMU_IRQHandler
BDMA1_IRQHandler

                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB

                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit

                 ELSE

                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap

__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END


न की गई निर्देशिका में नेविगेट करें
        cd ultralytics

        # विकास के लिए संगठनात्मक मोड में पैकेज स्थापित करें
        pip install -e .
        ```

    === "Docker"

        Docker का उपयोग करके `ultralytics` पैकेज का आसानी से निष्पादन करें और इसे रखरखाव में बेहद सुगम बनाएं, इस पैकेज का उपयोग करें, विभिन्न पर्यावरणों पर सतत और सुगम प्रदर्शन सुनिश्चित करने के लिए। [Docker Hub](https://hub.docker.com/r/ultralytics/ultralytics) से सत्यापित कार्यकारी वातावरण तक पहुंच के लिए Ultralytics 5 मुख्य समर्थित Docker इमेज उपलब्ध हैं, जो विभिन्न प्लेटफ़ॉर्म और उपयोग मामलों के लिए उच्च संगतता और प्रदार्थशीलता प्रदान करने के लिए डिज़ाइन किए गए हैं:

        - **Dockerfile:** प्रशिक्षण के लिए अद्यतन संस्करण के लिए अनुशंसित GPU चित्र।
        - **Dockerfile-arm64:** ARM64 वाणिज्यिकरण के लिए अनुकूलित, Raspberry Pi और अन्य ARM64 आधारित प्लेटफ़ॉर्म पर यातायात की अनुमति देता है।
        - **Dockerfile-cpu:** GPU रहित पतला मॉडल, उबंटू आधारित योग्यता तक पुनर्निर्माण के लिए उपयुक्त है।
        - **Dockerfile-jetson:** NVIDIA Jetson उपकरणों के लिए आदर्शों के आधार पर गीयू समर्थन मिलान, इन प्लेटफ़ॉर्मों के लिए अनुकूल यूपीयू समर्थन समेकित करता है।
        - **Dockerfile-python:** क


```

Create iterators for training and evaluation datasets.

```R
vocab <- length(eval_buckets$dic)

batch.size <- 32

train.data <- mx.io.bucket.iter(buckets = train_buckets$buckets, batch.size = batch.size,
                                data.mask.element = 0, shuffle = TRUE)

eval.data <- mx.io.bucket.iter(buckets = eval_buckets$buckets, batch.size = batch.size,
                               data.mask.element = 0, shuffle = FALSE)
```

## Train the Model

This model is a multi-layer RNN for sampling from character-level language models. It has a one-to-one model configuration since for each character, we want to predict the next one. For a sequence of length 100, there are also 100 labels, corresponding the same sequence of characters but offset by a position of +1. The parameters output_last_state is set to TRUE in order to access the state of the RNN cells when performing inference.

```R
rnn_graph_one_one <- rnn.graph(num_rnn_layer = 3,
                               num_hidden = 96,
                               input_size = vocab,
                               num_embed = 64,
                               num_decode = vocab,
                               dropout = 0.2,
                               ignore_label = 0,
                               cell_type = "lstm",
                               masking = F,
                               output_last_state = T,
                               loss_output = "softmax",
                               config = "one-to-one")

graph.viz(rnn_graph_one_one, type = "graph", direction = "LR",
          graph.height.px = 180, shape=c(100, 64))

devices <- mx.cpu()

initializer <- mx.init.Xavier(rnd_type = "gaussian", factor_type = "avg", magnitude = 3)

optimizer <- mx.opt.create("adadelta", rho = 0.9, eps = 1e-5, wd = 1e-8,
                           clip_gradient = 5, rescale.grad = 1/batch.size)

logger <- mx.metric.logger()
epoch.end.callback <- mx.callback.log.train.metric(period = 1, logger = logger)
batch.end.callback <- mx.callback.log.train.metric(period = 50)

mx.metric.custom_nd <- function(name, feval) {
  init <- function() {
    c(0, 0)
  }
  update <- function(label, pred, state) {
    m <- feval(label, pred)
    state <- c(state[[1]] + 1, state[[2]] + m)
    return(state)
  }
  get <- function(state) {
    list(name=name, value = (state[[2]] / state[[1]]))
  }
  ret <- (list(init = init, update = update, get = get))
  class(ret) <- "mx.metric"
  return(ret)
}

mx.metric.Perplexity <- mx.metric.custom_nd("Perplexity", function(label, pred) {
  label <- mx.nd.reshape(label, shape = -1)
  label_probs <- as.array(mx.nd.choose.element.0index(pred, label))
  batch <- length(label_probs)
  NLL <- -sum(log(pmax(1e-15, as.array(label_probs)))) / batch
  Perplexity <- exp(NLL)
  return(Perplexity)
})

model <- mx.model.buckets(symbol = rnn_graph_one_one,
                          train.data = train.data


-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z" ],
        "person-booth": [ 576, 512, [], "f756", "M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z" ],
        phone: [ 512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z" ],
        "phone-alt": [ 512, 512, [], "f879", "M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-


array->Destruct(a_machine);
    a_machine->Sys_Free(array);
  }
  a_object->m_user = NULL;
}

static bool GM_CDECL gmGCTraceArrayUserType(gmMachine * a_machine, gmUserObject* a_object, gmGarbageCollector* a_gc, const int a_workLeftToGo, int& a_workDone)
{
  if(a_object->m_user)
  {
    gmUserArray * array = (gmUserArray *) a_object->m_user;
    return array->Trace(a_machine, a_gc, a_workLeftToGo, a_workDone);
  }
  return true;
}

#else //GM_USE_INCGC
static void GM_CDECL gmMarkArrayUserType(gmMachine * a_machine, gmUserObject * a_object, gmuint32 a_mark)
{
  if(a_object->m_user)
  {
    gmUserArray * array = (gmUserArray *) a_object->m_user;
    array->Mark(a_machine, a_mark);
  }
}

static void GM_CDECL gmGCArrayUserType(gmMachine * a_machine, gmUserObject * a_object, gmuint32 a_mark)
{
  if(a_object->m_user)
  {
    gmUserArray * array = (gmUserArray *) a_object->m_user;
    array->Destruct(a_machine);
    a_machine->Sys_Free(array);
  }
  a_object->m_user = NULL;
}
#endif //GM_USE_INCGC

// libs

static gmFunctionEntry s_arrayLib[] =
{
  /*gm
    \lib gm
  */
  /*gm
    \function array
    \brief array will create a fixed size array object
    \param int size optional (0)
    \return array
  */
  {"array", gmfArray},
};

static gmFunctionEntry s_arrayTypeLib[] =
{
  /*gm
    \lib array
  */
  /*gm
    \function Size
    \brief Size will return the current size of the fixed array
    \return int array size
  */
  {"Size", gmfArraySize},
  /*gm
    \function Resize
    \brief Resize will resize the array to a new size
    \param int size optional (0)
    \return null
  */
  {"Resize", gmfArrayResize},
  /*gm
    \function Shift
    \brief Shift will shift slide the array elements by a delta, nulls are shifted in
    \param int delta
    \return null
  */
  {"Shift", gmfArrayShift},
  /*gm
    \function Move
    \brief Move will perform a non destructive move on the array
    \param int dst
    \param int src
    \param int size
    \return null
  */
  {"Move", gmfArrayMove},
};

void gmBindArrayLib(gmMachine * a_machine)
{
  gmUserArray::m_null.Nullify(); //Init static null

  a_machine->RegisterLibrary(s_arrayLib, sizeof(s_arrayLib) / sizeof(s_arrayLib[0]));
  GM_ARRAY = a_machine->CreateUserType("array");
  a_machine->RegisterTypeLibrary(GM_ARRAY, s_arrayTypeLib, sizeof(s_arrayTypeLib) / sizeof(s_arrayTypeLib[0]));
#if GM_USE_INCGC
  a_machine->RegisterUserCallbacks(GM_ARRAY, gmGCTraceArrayUserType, gmGCDestructArrayUserType);
#else //GM_USE_INCGC
  a_machine->RegisterUserCallbacks(GM_ARRAY, gmMarkArrayUserType, gmGCArrayUserType);
#endif //GM_USE_INCGC
  a_machine->RegisterTypeOperator(GM_ARRAY, O_GETIND, NULL, gmArrayGetInd);
  a_machine->RegisterTypeOperator(GM_ARRAY, O_SETIND, NULL, gmArraySetInd);
}

#endif // GM_ARRAY_LIB
#include "StdAfx.h"
#include "gmlangsettings.h"
#include "include/SciLexer.h"

#ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
#endif

//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------


# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init
from .file_comment_reply import FileCommentReply

class ListFileCommentReplyResponseBody(object):
    _types = {
        "items": List[FileCommentReply],
        "page_token": str,
        "has_more": bool,
    }

    def __init__(self, d=None):
        self.items: Optional[List[FileCommentReply]] = None
        self.page_token: Optional[str] = None
        self.has_more: Optional[bool] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "ListFileCommentReplyResponseBodyBuilder":
        return ListFileCommentReplyResponseBodyBuilder()

class ListFileCommentReplyResponseBodyBuilder(object):
    def __init__(self) -> None:
        self._list_file_comment_reply_response_body = ListFileCommentReplyResponseBody()

    def items(self, items: List[FileCommentReply]) -> "ListFileCommentReplyResponseBodyBuilder":
        self._list_file_comment_reply_response_body.items = items
        return self

    def page_token(self, page_token: str) -> "ListFileCommentReplyResponseBodyBuilder":
        self._list_file_comment_reply_response_body.page_token = page_token
        return self

    def has_more(self, has_more: bool) -> "ListFileCommentReplyResponseBodyBuilder":
        self._list_file_comment_reply_response_body.has_more = has_more
        return self

    def build(self) -> "ListFileCommentReplyResponseBody":
        return self._list_file_comment_reply_response_body


ipe
        /// </summary>
        [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
        public float MaterialUseMultiplier = 1;
        #endregion
    }

    public sealed class LatheGetRecipesEvent : EntityEventArgs
    {
        public readonly EntityUid Lathe;
        public readonly LatheComponent Comp;

        public bool GetUnavailable;

        public HashSet<ProtoId<LatheRecipePrototype>> Recipes = new();

        public LatheGetRecipesEvent(Entity<LatheComponent> lathe, bool forced)
        {
            (Lathe, Comp) = lathe;
            GetUnavailable = forced;
        }
    }

    /// <summary>
    /// Event raised on a lathe when it starts producing a recipe.
    /// </summary>
    [ByRefEvent]
    public readonly record struct LatheStartPrintingEvent(LatheRecipePrototype Recipe);
}


"opacity": 100,
			"angle": 0,
			"x": 289.7136807713231,
			"y": 1021.3274740917502,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "transparent",
			"width": 13.759994506835938,
			"height": 25,
			"seed": 2108204249,
			"groupIds": [],
			"frameId": null,
			"roundness": null,
			"boundElements": [],
			"updated": 1702538796120,
			"link": null,
			"locked": false,
			"fontSize": 20,
			"fontFamily": 1,
			"text": "0",
			"rawText": "0",
			"textAlign": "center",
			"verticalAlign": "middle",
			"containerId": "Sx24fLXnqKfh7cfkcag4O",
			"originalText": "0",
			"lineHeight": 1.25,
			"baseline": 18
		},
		{
			"id": "VqRa9Y6eWRRlmsc4Ko7ct",
			"type": "arrow",
			"x": 243.5640070779981,
			"y": 741.5482679476443,
			"width": 1.2976200645663312,
			"height": 90.63374493754043,
			"angle": 0,
			"strokeColor": "#1e1e1e",
			"backgroundColor": "#b2f2bb",
			"fillStyle": "solid",
			"strokeWidth": 1,
			"strokeStyle": "solid",
			"roughness": 1,
			"opacity": 100,
			"groupIds": [],
			"frameId": null,
			"roundness": {
				"type": 2
			},
			"seed": 2050507613,
			"version": 35,
			"versionNonce": 1169543571,
			"isDeleted": true,
			"boundElements": null,
			"updated": 1702538796120,
			"link": null,
			"locked": false,
			"points": [
				[
					0,
					0
				],
				[
					1.2976200645663312,
					90.63374493754043
				]
			],
			"lastCommittedPoint": null,
			"startBinding": null,
			"endBinding": null,
			"startArrowhead": null,
			"endArrowhead": "arrow"
		}
	],
	"appState": {
		"theme": "dark",
		"viewBackgroundColor": "#ffffff",
		"currentItemStrokeColor": "#1e1e1e",
		"currentItemBackgroundColor": "#b2f2bb",
		"currentItemFillStyle": "solid",
		"currentItemStrokeWidth": 1,
		"currentItemStrokeStyle": "solid",
		"currentItemRoughness": 1,
		"currentItemOpacity": 100,
		"currentItemFontFamily": 1,
		"currentItemFontSize": 20,
		"currentItemTextAlign": "left",
		"currentItemStartArrowhead": null,
		"currentItemEndArrowhead": "arrow",
		"scrollX": 455.5820711342462,
		"scrollY": -447.2639115773238,
		"zoom": {
			"value": 0.8529307860165047
		},
		"currentItemRoundness": "round",
		"gridSize": null,
		"currentStrokeOptions": null,
		"previousGridSize": null
	},
	"files": {}
}
```
%%

----

Tags: #graph #medium #leetcode #dp

----

## Drawing:
[[is-graph-bipartite.excalidraw]]

----

## solution explanation:
run dfs on each possible graph as started node be in group a, we come from node that are in group a, and current node, in group a than graph is not  **bipartite** else  **b


using SpiritMod.Items.Material;
using SpiritMod.NPCs.Tides.Tide;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace SpiritMod.Items.Consumable
{
	public class BlackPearl : ModItem
	{
		public override void SetStaticDefaults()
		{
			DisplayName.SetDefault("Seabreak Pearl");
			Tooltip.SetDefault("'Coveted by ancient horrors...'\nSummons The Tide\nCan only be used near the ocean");
		}

		public override void SetDefaults()
		{
			item.width = item.height = 16;
			item.rare = ItemRarityID.Orange;
			item.maxStack = 99;
			item.useStyle = ItemUseStyleID.HoldingUp;
			item.useTime = 30;
			item.useAnimation = 30;
			item.reuseDelay = 10;
			item.noMelee = true;
			item.consumable = true;
			item.autoReuse = false;
			item.useStyle = ItemUseStyleID.HoldingUp;
			item.UseSound = SoundID.Item43;
		}

		public override bool CanUseItem(Player player)
		{
			if ((player.ZoneTowerSolar


_of_contents2c9377fb-ce44-48bb-ab81-2b2ad4709e9f">  4.1.2.3.1 Window Drawing

          4.1.2.3.2 Overlay of Multiple Windows

          4.1.2.3.3 Visual Affect

          4.1.2.3.4 Frame Rate Control

          4.1.2.3.5 Multiple Hardware Layer Support

          4.1.2.3.6 Reduced Dependency of Hardware

          4.1.2.3.7 Multi Window

          4.1.2.3.8 Compatibility

      4.1.3 Policy Manager

        4.1.3.1 Overview

        <a c


-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z'/%3E%3C/svg%3E");
  --icon-mastodon: url("data:image/svg+xml, %0A%3Csvg role='img' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='18' height='18' fill='%239FA4BB'%3E%3Ctitle%3EMastodon icon%3C/title%3E%3Cpath d='M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z'/%3E%3C/svg%3E");
  --icon-verified: url('data:image/svg+xml, %3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22" width="22" height="22" %3E%3Cpath fill="%236364ff" d="M20.396 11c-.018-.646-.215-1.275-.57-1.816-.354-.54-.852-.972-1.438-1.246.223-.607.27-1.264.14-1.897-.131-.634-.437-1.218-.882-1.687-.47-.445-1.053-.75-1.687-.882-.633-.13-1.29-.083-1.897.14-.273-.587-.704-1.086-1.245-1.44S11.647 1.62 11 1.604c-.646.017-1.273.213-1.813.568s-.969.854-1.24 1.44c-.608-.223-1.267-.272-1.902-.14-.635.13-1.22.436-1.69.882-.445.47-.749 1.055-.878 1.688-.13.633-.08 1.29.144 1.896-.587.274-1.087.705-1.443 1.245-.356.54-.555 1.17-.574 1.817.02.647.21


("InstanceSlugArgs", func() {
		var opts *InstanceSlugArgs

		BeforeEach(func() {
			opts = &InstanceSlugArgs{}
		})

		Describe("Slug", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Slug", opts)).To(Equal(
					`positional-arg-name:"INSTANCE-GROUP/INSTANCE-ID"`,
				))
			})
		})
	})

	Describe("InstancesOpts", func() {
		var opts *InstancesOpts

		BeforeEach(func() {
			opts = &InstancesOpts{}
		})

		Describe("Details", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Details", opts)).To(Equal(
					`long:"details" short:"i" description:"Show details including VM CID, persistent disk CID, etc."`,
				))
			})
		})

		Describe("Vitals", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Vitals", opts)).To(Equal(
					`long:"vitals" description:"Show vitals"`,
				))
			})
		})

		Describe("Processes", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Processes", opts)).To(Equal(
					`long:"ps" short:"p" description:"Show processes"`,
				))
			})
		})

		Describe("Failing", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Failing", opts)).To(Equal(
					`long:"failing" short:"f" description:"Only show failing instances"`,
				))
			})
		})
	})

	Describe("VMsOpts", func() {
		var opts *VMsOpts

		BeforeEach(func() {
			opts = &VMsOpts{}
		})

		Describe("Vitals", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Vitals", opts)).To(Equal(
					`long:"vitals" description:"Show vitals"`,
				))
			})
		})

		Describe("CloudProperties", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("CloudProperties", opts)).To(Equal(
					`long:"cloud-properties" description:"Show cloud properties"`,
				))
			})
		})
	})

	Describe("CloudCheckOpts", func() {
		var opts *CloudCheckOpts

		BeforeEach(func() {
			opts = &CloudCheckOpts{}
		})

		Describe("Auto", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Auto", opts)).To(Equal(
					`long:"auto" short:"a" description:"Resolve problems automatically"`,
				))
			})
		})

		Describe("Resolution", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Resolutions", opts)).To(Equal(
					`long:"resolution" description:"Apply resolution of given type (e.g.: 'recreate_vm'). Can be used multiple times."`,
				))
			})
		})

		Describe("Report", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("Report", opts)).To(Equal(
					`long:"report" short:"r" description:"Only generate report; don't attempt to resolve problems"`,
				))
			})
		})
	})

	Describe("CreateRecoveryPlanOpts", func() {
		var opts *CreateRecoveryPlanOpts

		BeforeEach(func() {
			opts = &CreateRecoveryPlanOpts{}
		})

		Describe("Args", func() {
			It("contains desired values", func() {
				Expect(getStructTagForName("


          Jak mogę zapewnić kompleksowe szyfrowanie i usuwanie wiadomości?

Najlepszym sposobem, aby mieć pewność, że każda wiadomość jest kompleksowo zaszyfrowana, a metadane usunięte tak szybko, jak to możliwe, jest korzystanie z czatów z gwarantowanym szyfrowaniem end-to-end i włączonymi znikającymi wiadomościami.

Gwarantowane szyfrowane metodą end-to-end czaty chronią przed atakami MITM attacks, a włączenie znikających wiadomości powoduje usunięcie wiadomości z serwera po upływie czasu skonfigurowanego przez użytkownika.

Jeśli nie potrzebujesz dłuższej kopii wiadomości na serwerze, możesz także włączyć opcję „automatycznie usuń wiadomości z serwera”.

          Czy Delta Chat obsługuje funkcję Perfect Forward Secrecy?

Nie, Delta Chat nie obsługuje funkcji Perfect Forward Secrecy (PFS). Oznacza to, że jeśli twój prywatny klucz deszyfrujący Delta Chat wycieknie i ktoś zdobędzie twoje wcześniejsze wiadomości w trakcie przesyłania, będzie mógł je odszyfrować i odczytać przy użyciu ujawnionego klucza deszyfrowania.

Należy jednak pamiętać, że jeśli ktoś zdobędzie twoje klucze deszyfrujące, zazwyczaj będzie mógł również uzyskać twoje wiadomości, niezależnie od tego, czy obowiązuje zasada Perfect Forward Secrecy, czy nie. Typową sytuacją w świecie rzeczywistym w przypadku wycieku kluczy deszyfrujących jest przejęcie urządzenia, które omawiamy w naszej odpowiedzi na temat przejęcia metadanych i urządzenia.

Możliwe, że Delta Chat ewoluuje, aby wspierać Perfect Forward Secrecy, ponieważ OpenPGP to tylko kontener na zaszyfrowane wiadomości, ale zarządzanie kluczami szyfrowania (a tym samym rotacja kluczy lub „zapadanie kluczy”) mogłoby być zorganizowane w elastyczny sposób. Zobacz prototyp PFS firmy Seqouia, aby zapoznać się z istniejącymi eksperymentami w społeczności imple


//------------------------------------------------------------------------------
#ifdef __BORLANDC__
#pragma warn -8004
#endif

#include "hanlib.h"
#include "Johab.h"
#include "CP949Table.h"
#include "KS2JohabTable.h"
#include "CompleteHan.h"
#include "CompleteKS.h"
//------------------------------------------------------------------------------
byte _HanFont_Hangul[2350][32];			// KSϼ2350
byte _HanFont_Unicode[17304 + 67][32];	// ڵ 17304 = 128(0~127) + 128(128~255, ) + 11172 + 988 + 4888 + ù67
//------------------------------------------------------------------------------
void CompleteKS2350(THanFont *AHanFont)
{
	int i;

	for (i = 0; i < 2350; i++) {
    	THangul _Hangul;
		bool flag = true;
	    byte bitmap32[32];
		int F1, F2, F3, F3B, F2B, F1B;

		_Hangul.HanByte.Byte0 = (byte)(_KS2JohabTable[i] >> 8);
	    _Hangul.HanByte.Byte1 = (byte)(_KS2JohabTable[i]);

	    F1 = _CodeTable[0][_Hangul.HanCode.F1];
	    F2 = _CodeTable[1][_Hangul.HanCode.F2];
	    F3 = _CodeTable[2][_Hangul.HanCode.F3];

	    F3B = AHanFont->pF3B[F2];
	    F2B = AHanFont->pF2B[F1 * 2 + (F3 != 0)];
	    F1B = AHanFont->pF1B[F2 * 2 + (F3 != 0)];

	    if (F1) HanComplete(true, bitmap32, AHanFont->F1[F1B][F1], 32), flag = false;
	    if (F2) HanComplete(flag, bitmap32, AHanFont->F2[F2B][F2], 32), flag = false;
	    if (F3)	HanComplete(flag, bitmap32, AHanFont->F3[F3B][F3], 32), flag = false;

		memcpy(_HanFont_Hangul[i], bitmap32, 32);
	}
}
//------------------------------------------------------------------------------
void CompleteExtKS11172(THanFont *AHanFont)
{
	int i;

	for (i = 256; i < 17304 + 67; i++) {	// 0.55
		if (CP949CodeTable[i].CodeType == CODETABLE_HANGUL) {
			THangul _Hangul;
			bool flag = true;
		    byte bitmap32[32];
			int F1, F2, F3, F3B, F2B, F1B;

			_Hangul.HanByte.Byte0 = (byte)(CP949CodeTable[i].KSSM >> 8);
			_Hangul.HanByte.Byte1 = (byte)(CP949CodeTable[i].KSSM);

			F1 = _CodeTable[0][_Hangul.HanCode.F1];
			F2 = _CodeTable[1][_Hangul.HanCode.F2];
			F3 = _CodeTable[2][_Hangul.HanCode.F3];

			F3B = AHanFont->pF3B[F2];
			F2B = AHanFont->pF2B[F1 * 2 + (F3 != 0)];
			F1B = AHanFont->pF1B[F2 * 2 + (F3 != 0)];

			if (F1) HanComplete(true, bitmap32, AHanFont->F1[F1B][F1], 32), flag = false;
			if (F2) HanComplete(flag, bitmap32, AHanFont->F2[F2B][F2], 32), flag = false;
			if (F3)	HanComplete(flag, bitmap32, AHanFont->F3[F3B][F3], 32), flag = false;

			memcpy(_HanFont_Unicode[i], bitmap32, 32);
		}
	}
    for (i = 0; i < 51; i++)
		memcpy(_HanFont_Unicode[912 + 67 + i], AHanFont->pHangulJamo[i], 32);

	// 0.55 ߰
    for (i = 0; i < 19; i++)
		memcpy(_HanFont_Unicode[427 + i], AHanFont->F1[0][AHanFont->F_SKIP + i], 32);
    for (i = 0; i < 21; i++)
		memcpy(_HanFont_Unicode[427 + 19 + i], AHanFont->F2[0][AHanFont->F_SKIP + i], 32);
    for (i = 0; i < 27; i++)
		memcpy(_HanFont_Unicode[427 + (19+21) + i], AHanFont->F3[0][AHanFont->F_SKIP + i], 32);
}
//------------------------------------------------------------------------------


VALUES (%d, %s, %s, %s)" % {
        modId, E(f.name), E(f.result), E(f.signature)
    }))
    local fid = db:getlastautoid()
    for i, a in ipairs(f.args) do
        local cmd = "INSERT INTO args VALUES (0, %d, %s, %d