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 com.teradata.tpcds.column;

import com.teradata.tpcds.Table;

import static com.teradata.tpcds.column.ColumnTypes.IDENTIFIER;
import static com.teradata.tpcds.column.ColumnTypes.INTEGER;
import static com.teradata.tpcds.column.ColumnTypes.decimal;

public enum WebReturnsColumn
        implements Column
{
    WR_RETURNED_DATE_SK(IDENTIFIER),
    WR_RETURNED_TIME_SK(IDENTIFIER),
    WR_ITEM_SK(IDENTIFIER),
    WR_REFUNDED_CUSTOMER_SK(IDENTIFIER),
    WR_REFUNDED_CDEMO_SK(IDENTIFIER),
    WR_REFUNDED_HDEMO_SK(IDENTIFIER),
    WR_REFUNDED_ADDR_SK(IDENTIFIER),
    WR_RETURNING_CUSTOMER_SK(IDENTIFIER),
    WR_RETURNING_CDEMO_SK(IDENTIFIER),
    WR_RETURNING_HDEMO_SK(IDENTIFIER),
    WR_RETURNING_ADDR_SK(IDENTIFIER),
    WR_WEB_PAGE_SK(IDENTIFIER),
    WR_REASON_SK(IDENTIFIER),
    WR_ORDER_NUMBER(IDENTIFIER),
    WR_RETURN_QUANTITY(INTEGER),
    WR_RETURN_AMT(decimal(7, 2)),
    WR_RETURN_TAX(decimal(7, 2)),
    WR_RETURN_AMT_INC_TAX(decimal(7, 2)),
    WR_FEE(decimal(7, 2)),
    WR_RETURN_SHIP_COST(decimal(7, 2)),
    WR_REFUNDED_CASH(decimal(7, 2)),
    WR_REVERSED_CHARGE(decimal(7, 2)),
    WR_ACCOUNT_CREDIT(decimal(7, 2)),
    WR_NET_LOSS(decimal(7, 2));

    private final ColumnType type;

    WebReturnsColumn(ColumnType type)
    {
        this.type = type;
    }

    @Override
    public Table getTable()
    {
        return Table.WEB_RETURNS;
    }

    @Override
    public String getName()
    {
        return name().toLowerCase();
    }

    @Override
    public ColumnType getType()
    {
        return type;
    }

    @Override
    public int getPosition()
    {
        return ordinal();
    }
}
/*
 * 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 com.teradata.tpcds.column;

import com.teradata.tpcds.Table;

import static com.teradata.tpcds.Table.CUSTOMER_ADDRESS;
import static com.teradata.tpcds.column.ColumnTypes.IDENTIFIER;
import static com.teradata.tpcds.column.ColumnTypes.character;
import static com.teradata.tpcds.column.ColumnTypes.decimal;
import static com.teradata.tpcds.column.ColumnTypes.varchar;

public enum CustomerAddressColumn
        implements Column
{
    CA_ADDRESS_SK(IDENTIFIER),
    CA_ADDRESS_ID(character(16)),
    CA_STREET_NUMBER(character(10)),
    CA_STREET_NAME(varchar(60)),
    CA_STREET_TYPE(character(15)),
    CA_SUITE_NUMBER(


 inaccuracies, its better to devide the number by 1000 exp times rather than using math.pow
      // math.pow(1000, exp) is not always exactly 1000^exp
      for (var i = 0; i < exp; i++) {
        bytes /= _kibi;
      }
    }

    final unit = FileSizeUnit.values[exp];
    return '$sign${format(bytes)} ${unit.name}';
  }
}
/*
 * Copyright (c) 2023-2025. Patrick Schmidt.
 * All rights reserved.
 */

import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:riverpod/riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

import 'dialog_service_interface.dart';

part 'snackbar_service_interface.g.dart';

enum SnackbarType { error, warning, info }

class SnackBarConfig {
  final SnackbarType type;
  final Duration? duration;
  final String? title;
  final String? message;
  final String? mainButtonTitle;
  final VoidCallback? onMainButtonTapped;
  final bool closeOnMainButtonTapped;

  SnackBarConfig(
      {this.type = SnackbarType.info,
      this.duration = const Duration(seconds: 5),
      this.title,
      this.message,
      this.mainButtonTitle,
      this.onMainButtonTapped,
      this.closeOnMainButtonTapped = false});

  factory SnackBarConfig.stacktraceDialog({
    required DialogService dialogService,
    required Object exception,
    required StackTrace stack,
    String snackTitle = 'Error',
    String? snackMessage,
    String? dialogTitle,
    String? dialogExceptionPrefix,
  }) {
    return SnackBarConfig(
        type: SnackbarType.error,
        title: snackTitle,
        message: snackMessage ?? exception.toString(),
        duration: const Duration(seconds: 30),
        mainButtonTitle: tr('general.details'),
        closeOnMainButtonTapped: true,
        onMainButtonTapped: () {
          var prefix = (dialogExceptionPrefix != null) ? '$dialogExceptionPrefix\n' : '';

          dialogService.show(DialogRequest(
              type: CommonDialogs.stacktrace,
              title: dialogTitle ?? snackTitle,
              body: '${prefix}Exception:\n $exception\n\n$stack'));
        });
  }
}

@Riverpod(keepAlive: true)
SnackBarService snackBarService(Ref ref) => throw UnimplementedError();

abstract interface class SnackBarService {
  void show(SnackBarConfig config);

  /// Only show the snackbar if the machine with the given UUID is currently selected
  void showForMachine(String machineUUID, SnackBarConfig config);
}
/*
 * Copyright (c) 2024-2025. Patrick Schmidt.
 * All rights reserved.
 */
import 'package:common/ui/mobileraker_icons.dart';
import 'package:flutter/material.dart';

import '../model/sheet_action_mixin.dart';

enum SpoolSpoolmanSheetAction with BottomSheetAction {
  activate('pages.spoolman.spoolman_actions.activate', Icons.play_arrow),
  deactivate('pages.spoolman.spoolman_actions.deactivate', Icons.pause),
  clone('pages.spoolman.spoolman_actions.clone', Icons.copy),
  edit('pages.spoolman.spoolman_actions.edit', Icons.edit),
  archive('pages.spoolman.spoolman_actions.archive', Icons.move_to_inbox),
  unarchive('pages.spoolman.spoolman_actions.unarchive', Icons.restore),
  adjustFilament('pages.spoolman.spoolman_actions.adjust', MobilerakerIcons.nozzle


btn-disabled:active,
.rs-btn-subtle.rs-btn-violet.rs-btn-disabled:focus,
.rs-btn-subtle.rs-btn-violet.rs-btn-disabled:hover,
.rs-btn-subtle.rs-btn-violet.rs-btn-disabled:hover:active {
    color: #c5c6c7;
    background: none;
}
.rs-btn-ghost {
    -webkit-transition: color 0.2s linear, background-color 0.3s linear;
    transition: color 0.2s linear, background-color 0.3s linear;
    border: 1px solid#65438f;
}
.rs-btn-ghost,
.rs-btn-ghost.rs-btn-loading:active,
.rs-btn-ghost.rs-btn-loading:focus,
.rs-btn-ghost.rs-btn-loading:hover,
.rs-btn-ghost.rs-btn-loading:hover:active,
.rs-btn-ghost.rs-btn-loading:not(.rs-btn-disabled):hover {
    color:#65438f;
    background-color: transparent;
}
.rs-btn-ghost.rs-btn-focus,
.rs-btn-ghost:focus,
.rs-btn-ghost:hover {
    color: #0a5dc2;
    border-color: #0a5dc2;
}
.rs-btn-ghost.rs-btn-active,
.rs-btn-ghost:active,
.rs-open > .rs-dropdown-toggle.rs-btn-ghost {
    color: #004299;
    border-color: #004299;
    background-image: none;
}
.rs-btn-ghost.rs-btn-active.rs-btn-focus,
.rs-btn-ghost.rs-btn-active:focus,
.rs-btn-ghost.rs-btn-active:hover,
.rs-btn-ghost:active.rs-btn-focus,
.rs-btn-ghost:active:focus,
.rs-btn-ghost:active:hover,
.rs-open > .rs-dropdown-toggle.rs-btn-ghost.rs-btn-focus,
.rs-open > .rs-dropdown-toggle.rs-btn-ghost:focus,
.rs-open > .rs-dropdown-toggle.rs-btn-ghost:hover {
    color: #004299;
    border-color: #004299;
}
.rs-btn-ghost.rs-btn-disabled.focus,
.rs-btn-ghost.rs-btn-disabled:focus,
.rs-btn-ghost.rs-btn-disabled:hover {
    background: none;
}
.rs-btn-ghost.rs-btn-red {
    border: 1px solid #bf2008;
}
.rs-btn-ghost.rs-btn-red,
.rs-btn-ghost.rs-btn-red.rs-btn-loading:active,
.rs-btn-ghost.rs-btn-red.rs-btn-loading:focus,
.rs-btn-ghost.rs-btn-red.rs-btn-loading:hover,
.rs-btn-ghost.rs-btn-red.rs-btn-loading:hover:active,
.rs-btn-ghost.rs-btn-red.rs-btn-loading:not(.rs-btn-disabled):hover {
    color: #bf2008;
    background-color: transparent;
}
.rs-btn-ghost.rs-btn-red.rs-btn-focus,
.rs-btn-ghost.rs-btn-red:focus,
.rs-btn-ghost.rs-btn-red:hover {
    color: #a81b02;
    border-color: #a81b02;
}
.rs-btn-ghost.rs-btn-red.rs-btn-active,
.rs-btn-ghost.rs-btn-red:active,
.rs-open > .rs-dropdown-toggle.rs-btn


            this.drawingObjects.changeCurrentState(new AddPolyLine2State3(this.drawingObjects, pageIndex));
        }
    },

    onMouseUp: function(e, x, y, pageIndex)
    {
    }
};

function AddPolyLine2State3(drawingObjects, pageIndex)
{
    this.drawingObjects = drawingObjects;
    this.lastX = -1000;
    this.lastY = -1000;

    this.polylineFlag = true;
    this.pageIndex = pageIndex;
}
AddPolyLine2State3.prototype =
{
    onMouseDown: function(e, x, y, pageIndex)
    {

        if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
            return {objectId: null, bMarker: true};

        this.lastX = x;
        this.lastY = y;
        var tr_x, tr_y;
        if(pageIndex === this.drawingObjects.startTrackPos.pageIndex)
        {
            tr_x = x;
            tr_y = y;
        }
        else
        {
            var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
            tr_x = tr_point.X;
            tr_y = tr_point.Y;
        }
        if(e.ClickCount > 1)
        {
            this.bStart = true;
            this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
            StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
        }
        else
        {
            var oTrack = this.drawingObjects.arrTrackObjects[0];
            oTrack.replaceLastPoint(tr_x, tr_y, false);
            oTrack.addPoint(tr_x, tr_y, true);
        }
    },

    onMouseMove: function(e, x, y, pageIndex)
    {
        if(AscFormat.fApproxEqual(x, this.lastX) && AscFormat.fApproxEqual(y, this.lastY)) {
            return;
        }
        var tr_x, tr_y;
        if(pageIndex === this.drawingObjects.startTrackPos.pageIndex)
        {
            tr_x = x;
            tr_y = y;
        }
        else
        {
            var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
            tr_x = tr_point.X;
            tr_y = tr_point.Y;
        }

        var oTrack = this.drawingObjects.arrTrackObjects[0];
        if(!e.IsLocked && oTrack.getPointsCount() > 1)
        {
            oTrack.replaceLastPoint(tr_x, tr_y, true);
        }
        else
        {
            oTrack.tryAddPoint(tr_x, tr_y);
        }
        this.drawingObjects.drawingDocument.m_oWordControl.OnUpdateOverlay();
        this.lastX = x;
        this.lastY = y;
    },

    onMouseUp: function(e, x, y, pageIndex)
    {
        this.lastX = x;
        this.lastY = y;
        if(e.ClickCount > 1)
        {

            this.bStart = true;

            this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
            StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
        }
    }
};

//--------------------------------------------------------export----------------------------------------------------
window['AscFormat'] = window['AscFormat'] || {};
window['AscFormat'].MOVE_DELTA = MOVE_DELTA;
window['AscFormat'].SNAP_DISTANCE = SNAP_DISTANCE;
window['AscFormat'].StartAddNewShape = StartAddNewShape;
window['AscFormat'].NullState = NullState;
window['AscFormat'].PreChangeAdjState = PreChangeAdjState;
window['AscFormat'].PreMoveInlineObject = PreMoveInlineObject;
window['Asc


UI 3 Portal Example

Drag a news feed into one of the columns.

        Built with YUI 3: Core, Loader, Get, Cookie, Animation, YQL, JSON & DragDrop.


entifier: GPL-2.0
package me.phh.ims

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.telephony.Rlog
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class PhhImsBroadcastReceiver : BroadcastReceiver() {
    companion object {
        private const val TAG = "PHH ImsBroadcastReceiver"
    }

    val ALARM_PERIODIC_REGISTER = "me.phh.ims.ALARM_PERIODIC_REGISTER"

    override fun onReceive(ctxt: Context, intent: Intent) {
        Rlog.d(TAG, "Alarm fired with ${intent.action}")
        if (intent.action == ALARM_PERIODIC_REGISTER) {
            val imsService = PhhImsService.Companion.instance!!
            // rearm alarm
            imsService.armPeriodicRegisterAlarm()
            // XXX take some lock until this comes back?
            // (not function return, but callback after notify)
            CoroutineScope(Dispatchers.IO).launch {
                imsService.mmTelFeature?.sipHandler?.register()
            }
            return
        }
    }
}
//SPDX-License-Identifier: GPL-2.0
package me.phh.sip

import android.telephony.PhoneNumberUtils
import android.telephony.Rlog
import java.nio.ByteBuffer
import java.nio.ByteOrder

/* Helpers for GSM A Interface RP - SMS GSM layer 3
 *
 * Based on:
 *
 * https://www.etsi.org/deliver/etsi_ts/124000_124099/124011/15.03.00_60/ts_124011v150300p.pdf
 *
 * ... and a salt of wireshark's GPL-2.0-or-later
 * epan/dissectors/packet-gsm_a_rp.c
 */

private const val TAG = "PHH SipSms"

enum class SmsType(val value: Byte) {
    RP_DATA_TO_NETWORK(0),
    RP_DATA_FROM_NETWORK(1),
    RP_ACK_TO_NETWORK(2),
    RP_ACK_FROM_NETWORK(3),
    RP_ERROR_TO_NETWORK(4),
    RP_ERROR_FROM_NETWORK(5),
    RP_SNMA_TO_NETWORK(6),
}

data class SipSms(
    val type: SmsType,
    val ref: Byte,
    val pdu: ByteArray?,
)

// catch java.nio.BufferUnderflowException if buffer too small
fun ByteArray.SipSmsDecode(): SipSms? {
    var buf = ByteBuffer.wrap(this).order(ByteOrder.BIG_ENDIAN)

    val type = buf.get()
    when (type) {
        SmsType.RP_DATA_FROM_NETWORK.value -> {
            // ref needs to be used in ACK
            val ref = buf.get()

            val origAddrLen = buf.get().toInt()
            val origAddrBuf = ByteArray(origAddrLen)
            val origAddr =
                if (origAddrLen == 0) {
                    "unknown"
                } else {
                    buf.get(origAddrBuf, 0, origAddrLen)
                    // check if should use EF_ADN type instead
                    PhoneNumberUtils.calledPartyBCDToString(
                        origAddrBuf,
                        0,
                        origAddrLen,
                        PhoneNumberUtils.BCD_EXTENDED_TYPE_CALLED_PARTY
                    )
                }

            val destAddrLen = buf.get().toInt()
            val destAddr =
                if (destAddrLen == 0) {
                    "unknown"
                } else {
                    val destAddrBuf = ByteArray(destAddrLen)
                    buf.get(destAddrBuf, 0, destAddrLen)
                    // check if should use EF_ADN type instead
                    PhoneNumberUtils.calledPartyBCDToString(
                        destAddrBuf,
                        0,
                        destAddrLen,
                        PhoneNumberUtils.BCD_EXTENDED_TYPE_CALLED_PARTY
                    )
                }

            // signed bytes cast to


 preset="1"> This is a heading </pharos-heading> `
    );
    expect(component).dom.to.equal(
      `<pharos-heading level="1" preset="1">This is a heading</pharos-heading>`
    );
  });

  it('renders the correct heading level', async () => {
    component = await fixture(html`
      <pharos-heading level="2" preset="1"> This is a heading </pharos-heading>
    `);
    expect(component).shadowDom.to.equal(`
      <h2 class="heading">
        <slot></slot>
      </h2>
    `);
  });

  it('throws an error for a missing level value', async () => {
    component = await fixture(html` <pharos-heading> This is a heading </pharos-heading> `).catch(
      (e) => e
    );
    expect('level is a required attribute.').to.be.thrown;
  });

  it('throws an error for an invalid level value', async () => {
    component = await fixture(html`
      <pharos-heading level="7"> This is a heading </pharos-heading>
    `).catch((e) => e);
    expect('7 is not a valid heading level. Valid levels are: 1, 2, 3, 4, 5, 6').to.be.thrown;
  });

  it('throws an error for an invalid preset value', async () => {
    component = await fixture(html`
      <pharos-heading level="1" preset="9"> This is a heading </pharos-heading>
    `).catch((e) => e);
    expect(
      '9 is not a valid preset. Available presets are 1, 1--bold, 2, 2--bold, 3, 3--bold, 4, 4--bold, 5, 5--bold, 6, 6--bold, 7, 7--bold, legend.'
    ).to.be.thrown;
  });
});
export enum BackgroundColors
{
    Red = 0xF84031,
    DarkBlue = 0x324464,
    Violet = 0x3B2C54,
    Green = 0x196840,
    Orange = 0xEF7D3C,
    Dark = 0x1c1c1c,
    LightGray = 0xe0e0e0,
    DarkGray = 0x65596c,
    Gray = 0x4a3a52,
    White = 0xfcfcfc
};

export enum BubbleColors
{
    None = 0x000000,
    Blue = 0x060095,
    White = 0xfcfcfc,
    Green = 0x00c202,
    Pink = 0xab00a2,
    Yellow = 0xa1c201,
    Red = 0xaa0000,
    Black = 0x25241c
};

export function randomEnum<T>(anEnum: T, exclude?: number[]): T[keyof T]
{
    let enumValues = Object.keys(anEnum)
      .map(n => Number.parseInt(n))
      .filter(n => !Number.isNaN(n) && !exclude.includes(n)) as unknown as T[keyof T][];

    let randomIndex = Math.floor(Math.random() * (enumValues.length));
    return enumValues[randomIndex];
}export declare class A {
    constructor(b: ConsParamType);
    field: FieldType;
    getter: GetterType;
    method(p: ParamType): MethodReturnType;
    methodWithFunc(closure: ClosureReturn): void;
    static staticField: StaticFieldType;
    static staticMethod(): void;
}
export declare class ConsParamType {
}
export declare class FieldType {
}
export declare class GetterType {
}
export declare class MethodReturnType {
}
export declare class ParamType {
}
export declare class StaticFieldType {
}
export declare class ClosureReturn {
}
export declare class ClosureParam {
}
export declare class TypedefReturnType {
}
export declare class TypedefParam {
}
export declare class Generic<K> {
    getter: K;
}
export interface SomeInterface {
    someMethod(): any;
}
import { LocalStorageUtil} from './local-storage-util';
import {UserType}


-------------------------------------------------------------------------------
-- Importing modules
-------------------------------------------------------------------------------
local IndicesEndpoint = require "elasticsearch.endpoints.Indices.IndicesEndpoint"

-------------------------------------------------------------------------------
-- Declaring module
-------------------------------------------------------------------------------
local GetWarmer = IndicesEndpoint:new()

-------------------------------------------------------------------------------
-- Declaring Instance variables
-------------------------------------------------------------------------------

-- The parameters that are allowed to be used in params
GetWarmer.allowedParams = {
  ["ignore_unavailable"] = true,
  ["allow_no_indices"] = true,
  ["expand_wildcards"] = true,
  ["local"] = true
}

-------------------------------------------------------------------------------
-- Function to calculate the http request method
--
-- @return    string    The HTTP request method
-------------------------------------------------------


    "いとこ",
    "いない",
    "いなか",
    "いねむり",
    "いのち",
    "いのる",
    "いはつ",
    "いばる",
    "いはん",
    "いびき",
    "いひん",
    "いふく",
    "いへん",
    "いほう",
    "いみん",
    "いもうと",
    "いもたれ",
    "いもり",
    "いやがる",
    "いやす",
    "いよかん",
    "いよく",
    "いらい",
    "いらすと",
    "いりぐち",
    "いりょう",
    "いれい",
    "いれもの",
    "いれる",
    "いろえんぴつ",
    "いわい",
    "いわう",
    "いわかん",
    "いわば",
    "いわゆる",
    "いんげんまめ",
    "いんさつ",
    "いんしょう",
    "いんよう",
    "うえき",
    "うえる",
    "うおざ",
    "うがい",
    "うかぶ",
    "うかべる",
    "うきわ",
    "うくらいな",
    "うくれれ",
    "うけたまわる",
    "うけつけ",
    "うけとる",
    "うけもつ",
    "うける",
    "うごかす",
    "うごく",
    "うこん",
    "うさぎ",
    "うしなう",
    "うしろがみ",
    "うすい",
    "うすぎ",
    "うすぐらい",
    "うすめる",
    "うせつ",
    "うちあわせ",
    "うちがわ",
    "うちき",
    "うちゅう",
    "うっかり",
    "うつくしい",
    "うったえる",
    "うつる",
    "うどん",
    "うなぎ",
    "うなじ",
    "うなずく",
    "うなる",
    "うねる",
    "うのう",
    "うぶげ",
    "うぶごえ",
    "うまれる",
    "うめる",
    "うもう",
    "うやまう",
    "うよく",
    "うらがえす",
    "うらぐち",
    "うらない",
    "うりあげ",
    "うりきれ",
    "うるさい",
    "うれしい",
    "うれゆき",
    "うれる",
    "うろこ",
    "うわき",
    "うわさ",
    "うんこう",
    "うんちん",
    "うんてん",
    "うんどう",
    "えいえん",
    "えいが",
    "えいきょう",
    "えいご",
    "えいせい",
    "えいぶん",
    "えいよう",
    "えいわ",
    "えおり",
    "えがお",
    "えがく",
    "えきたい",
    "えくせる",
    "えしゃく",
    "えすて",
    "えつらん",
    "えのぐ",
    "えほうまき",
    "えほん",
    "えまき",
    "えもじ",
    "えもの",
    "えらい",
    "えらぶ",
    "えりあ",
    "えんえん",
    "えんかい",
    "えんぎ",
    "えんげき",
    "えんしゅう",
    "えんぜつ",
    "えんそく",
    "えんちょう",
    "えんとつ",
    "お


8 8007D600 00010524 */  addiu      $a1, $zero, 0x100
/* 493EBCC 8007D604 932F010C */  jal        func_8004BE4C
/* 493EBD0 8007D608 00010624 */   addiu     $a2, $zero, 0x100
/* 493EBD4 8007D60C 31004010 */  beqz       $v0, .Llevel_52_8007D6D4
/* 493EBD8 8007D610 00000000 */   nop
/* 493EBDC 8007D614 0780113C */  lui        $s1, %hi(D_80077368)
/* 493EBE0 8007D618 68733126 */  addiu      $s1, $s1, %lo(D_80077368)
/* 493EBE4 8007D61C 21202002 */  addu       $a0, $s1, $zero
/* 493EBE8 8007D620 CC5C000C */  jal        func_80017330
/* 493EBEC 8007D624 00100524 */   addiu     $a1, $zero, 0x1000
/* 493EBF0 8007D628 00000386 */  lh         $v1, 0x0($s0)
/* 493EBF4 8007D62C 0000228E */  lw         $v0, 0x0($s1)
/* 493EBF8 8007D630 00000000 */  nop
/* 493EBFC 8007D634 18006200 */  mult       $v1, $v0
/* 493EC00 8007D638 02000386 */  lh         $v1, 0x2($s0)
/* 493EC04 8007D63C 12280000 */  mflo       $a1
/* 493EC08 8007D640 0780023C */  lui        $v0, %hi(D_80077368 + 0x04)
/* 493EC0C 8007D644 6C73428C */  lw         $v0, %lo(D_80077368 + 0x04)($v0)
/* 493EC10 8007D648 00000000 */  nop
/* 493EC14 8007D64C 18006200 */  mult       $v1, $v0
/* 493EC18 8007D650 04000386 */  lh         $v1, 0x4($s0)
/* 493EC1C 8007D654 12200000 */  mflo       $a0
/* 493EC20 8007D658 0780023C */  lui        $v0, %hi(D_80077370)
/* 493EC24 8007D65C 7073428C */  lw         $v0, %lo(D_80077370)($v0)
/* 493EC28 8007D660 00000000 */  nop
/* 493EC2C 8007D664 18006200 */  mult       $v1, $v0
/* 493EC30 8007D668 2110A400 */  addu       $v0, $a1, $a0
/* 493EC34 8007D66C 12180000 */  mflo       $v1
/* 493EC38 8007D670 21104300 */  addu       $v0, $v0, $v1
/* 493EC3C 8007D674 C33A0200 */  sra        $a3, $v0, 11
/* 493EC40 8007D678 1600E104 */  bgez       $a3, .Llevel_52_8007D6D4
/* 493EC44 8007D67C 21202002 */   addu      $a0, $s1, $zero
/* 493EC48 8007D680 00100524 */  addiu      $a1, $zero, 0x1000
/* 493EC4C 8007D684 43330200 */  sra        $a2, $v0, 13
/* 493EC50 8007D688 6E5D000C */  jal        VecScaleToLength
/* 493EC54 8007D68C 2330C700 */   subu      $a2, $a2, $a3
/* 493EC58 8007D690 0000238E


import shutil
from termcolor import colored
import ipdb
import yaml
import os
import random
import hydra
import logging
from omegaconf import OmegaConf

import numpy as np
import torch

from src.slam import SLAM
from src.datasets import get_dataset

"""
Run the SLAM system on a given dataset or on image folder.
You can configure the system using .yaml configs. See docs for reference ...
"""

# A logger for this file
log = logging.getLogger(__name__)

def sys_print(msg: str) -> None:
    log.info(colored(msg, "white", "on_grey", attrs=["bold"]))

def setup_seed(seed):
    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    np.random.seed(seed)
    random.seed(seed)
    torch.backends.cudnn.deterministic = True

def backup_source_code(backup_directory):
    ignore_hidden = shutil.ignore_patterns(
        ".",
        "..",
        ".git*",
        "*pycache*",
        "*build",
        "*ext",
        "*thirdparty",
        "*.fuse*",
        "*_drive_*",
        "*pretrained*",
        "*output*",
        "*.png",
        "*.jpg",
        "*.jpeg",
        "*.mp4",
        "*.gif",
        "*media*",
        "*.so",
        "*.pyc",
        "*.Python",
        "*.eggs*",
        "*.DS_Store*",
        "*.idea*",
        "*.pth",
        "*__pycache__*",
        "*.ply",
        "*exps*",
    )

    if os.path.exists(backup_directory):
        shutil.rmtree(backup_directory)

    shutil.copytree(".", backup_directory, ignore=ignore_hidden)
    os.system("chmod -R g+w {}".format(backup_directory))

def get_in_the_wild_heuristics(ht: int, wd: int, strategy: str = "generic") -> torch.Tensor:
    """We do not have camera intrinsics on in-the-wild data. In order for this to converge, we
    need a good initialize guess. There are two strategies to do this: i) generc ii) Teeds from DeepV2D
    """
    if strategy == "generic":
        fx = fy = (wd + ht) / 2
        cx, cy = wd / 2, ht / 2
    else:
        fx = fy = wd * 1.2
        cx, cy = wd / 2, ht / 2
    return fx, fy, cx, cy

@hydra.main(version_base=None, config_path="./configs/", config_name="slam")
def run_slam(cfg):

    output_folder = hydra.core.hydra_config.HydraConfig.get().runtime.output_dir
    log.info(OmegaConf.to_yaml(cfg))
    # Save the cfg to yaml file
    with open(os.path.join(output_folder, "config.yaml"), "w") as f:
        yaml.dump(OmegaConf.to_container(cfg), f, default_flow_style=False)

    setup_seed(43)
    torch.multiprocessing.set_start_method("spawn")
    # Save state for reproducibility
    backup_source_code(os.path.join(output_folder, "code"))

    sys_print(f"\n\n** Running {cfg.data.input_folder} in {cfg.mode} mode!!! **\n\n")

    if cfg.data.cam.fx is None or cfg.data.cam.fy is None:
        sys_print("Using generic intrinsics for in-the-wild data")
        cfg.data.cam.fx, cfg.data.cam.fy, cfg.data.cam.cx, cfg.data.cam.cy = get_in_the_wild_heuristics(
            ht=cfg.data.cam.H, wd=cfg.data.cam.W
        )
    dataset = get_dataset(cfg, device=cfg.device)
    slam = SLAM(cfg, dataset=dataset, output_folder=output_folder)

    sys_print(f"Running on {len(dataset)} frames")
    slam.run(dataset)
    sys_print("Done!")

if __name__ == "__main__":
    run_slam()


false, 1., interval, range);
        assertValue(false, 100. - EPSILON, interval, range);
        assertValue(true, 100., interval, range);
        assertValue(true, 150., interval, range);
        assertValue(true, 204.53, interval, range);
        assertValue(false, 204.53 + EPSILON, interval, range);
        assertValue(false, 500., interval, range);
        assertValue(false, Double.MAX_VALUE, interval, range);
    }

    void assertValue(boolean expected, Double testedValue, VoltageInterval interval, DoubleRange range) {
        assertEquals(expected, interval.checkIsBetweenBound(testedValue));
        assertEquals(expected, range.contains(testedValue));
    }

    @Test
    void invalidValuesTest() {
        VoltageInterval.Builder builder = VoltageInterval.builder();
        IllegalArgumentException e = assertThrows(IllegalArgumentException.class, builder::build);
        assertEquals("Invalid interval: at least one bound must be defined.", e.getMessage());

        // Invalid negative bound
        assertThrows(IllegalArgumentException.class, () -> builder.setLowBound(-2., false));
        assertThrows(IllegalArgumentException.class, () -> builder.setHighBound(-2., false));
        builder.setLowBound(10., false);

        // Invalid ]10 ; 2[ (when setting higher bound)
        assertThrows(IllegalArgumentException.class, () -> builder.setHighBound(2., false));

        // Invalid ]10 ; 2[ (when setting lower bound)
        VoltageInterval.Builder builder2 = VoltageInterval.builder();
        builder2.setHighBound(2., false);
        assertThrows(IllegalArgumentException.class, () -> builder2.setLowBound(10., false));

        VoltageInterval.Builder builder3 = VoltageInterval.builder();
        builder3.setLowBound(2., false);
        // Invalid empty bound ]2 ; 2] (when setting higher bound)
        e = assertThrows(IllegalArgumentException.class, () -> builder3.setHighBound(2., true));
        assertEquals("Invalid interval: it should not be empty", e.getMessage());
        builder3.setHighBound(4., false);
        // Invalid empty bound ]4 ; 4[ (when setting lower bound)
        assertThrows(IllegalArgumentException.class, () -> builder3.setLowBound(4., false));

        // Invalid interval [0 ; 0[
        VoltageInterval.Builder builder4 = VoltageInterval.builder();
        assertThrows(IllegalArgumentException.class, () -> builder4.setHighBound(0., false));
        assertDoesNotThrow(() -> builder4.setHighBound(0, true)); // [0 ; 0] is valid

        // Invalid interval [MAX_VALUE ; MAX_VALUE[
        VoltageInterval.Builder builder5 = VoltageInterval.builder();
        assertThrows(IllegalArgumentException.class, () -> builder5.setLowBound(Double.MAX_VALUE, false));
        assertDoesNotThrow(() -> builder5.setLowBound(Double.MAX_VALUE, true)); // [MAX_VALUE ; MAX_VALUE] is valid
    }

    @Test
    void gettersTest() {
        VoltageInterval interval = VoltageInterval.builder()
                .setLowBound(200.54, false)
                .setHighBound(225.12, true)
                .build();
        assertFalse(interval.isLowClosed());
        assertTrue(interval.isHighClosed());
        assertEquals(200.54, interval.getNominalVoltageLowBound().orElse(0.), 0.001);
        assertEquals(225.12, interval.getNominalVoltageHighBound().orElse(0.), 0.001);

        interval = VoltageInterval.builder()
                .setLowBound(200.87, true)
                .setHighBound(225.63, false)
                .build();
        assertTrue(interval.isLowClosed());
        assertFalse(interval.isHighClosed());
        assertEqu


) - Add `/logout` functionality for Gradio auth.  Thanks [@abidlabs](https://github.com/abidlabs)!
- [#7407](https://github.com/gradio-app/gradio/pull/7407) [`375bfd2`](https://github.com/gradio-app/gradio/commit/375bfd28d2def576b4e1c12e0a60127b7419e826) - Fix server_messages.py to use the patched BaseModel class for Wasm env.  Thanks [@aliabid94](https://github.com/aliabid94)!
- [#7516](https://github.com/gradio-app/gradio/pull/7516) [`3645da5`](https://github.com/gradio-app/gradio/commit/3645da5f1e5539668cad75071a82fdd78f50263c) - Fix incorrect relative mouse coordinates for `Gallery` preview overlay.  Thanks [@MMP0](https://github.com/MMP0)!
- [#7528](https://github.com/gradio-app/gradio/pull/7528) [`eda33b3`](https://github.com/gradio-app/gradio/commit/eda33b3763897a542acf298e523fa493dc655aee) - Refactors `get_fetchable_url_or_file()` to remove it from the frontend.  Thanks [@abidlabs](https://github.com/abidlabs)!
- [#7340](https://github.com/gradio-app/gradio/pull/7340) [`4b0d589`](https://github.com/gradio-app/gradio/commit/4b0d58933057432758a54169a360eb352903d6b4) - chore(deps): update all non-major dependencies.  Thanks [@renovate](https://github.com/apps/renovate)!
- [#7345](https://github.com/gradio-app/gradio/pull/7345) [`561579d`](https://github.com/gradio-app/gradio/commit/561579d9b7b860c5cb3f8131e0dced0c8114463f) - fix-tests.  Thanks [@pngwn](https://github.com/pngwn)!
- [#7518](https://github.com/gradio-app/gradio/pull/7518) [`bd2c695`](https://github.com/gradio-app/gradio/commit/bd2c69532801f9a0626cd1192de158bde6068b9a) - Adds a `gr.DownloadButton` component.  Thanks [@abidlabs](https://github.com/abidlabs)!
- [#7598](https://github.com/gradio-app/gradio/pull/7598) [`d3384cb`](https://github.com/gradio-app/gradio/commit/d3384cb926ca9bab7ccbf910547ec8a0c361531f) - Prevent additional paths that can trigger credential leakage on Windows.  Thanks [@abidlabs](https://github.com/abidlabs)!
- [#7544](https://github.com/gradio-app/gradio/pull/7544) [`f84720c`](https://github.com/gradio-app/gradio/commit/f84720cd76e5bf3321f06383642bdb246a9a36e2) - Prevent paths beginning with `//` or `\\`.  Thanks [@abidlabs](https://github.com/abidlabs)!

### Fixes

- [#7565](https://github.com/gradio-app/gradio/pull/7565) [`1c22123`](https://github.com/gradio-app/gradio/commit/1c22123268da5f7fcf6e7c74ee0bf6b225c7aa11) - Fixes method to resolve the `root` URLs.  Thanks [@abidlabs](https://github.com/abidlabs)!
- [#7559](https://github.com/gradio-app/gradio/pull/


ui.cards>.purple.card,.ui.purple.card,.ui.purple.cards>.card{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #A333C8,0 1px 3px 0 #D4D4D5}.ui.cards>.purple.card:hover,.ui.purple.card:hover,.ui.purple.cards>.card:hover{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #9627ba,0 1px 3px 0 #BCBDBD}.ui.cards>.pink.card,.ui.pink.card,.ui.pink.cards>.card{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #E03997,0 1px 3px 0 #D4D4D5}.ui.cards>.pink.card:hover,.ui.pink.card:hover,.ui.pink.cards>.card:hover{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #e61a8d,0 1px 3px 0 #BCBDBD}.ui.brown.card,.ui.brown.cards>.card,.ui.cards>.brown.card{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #A5673F,0 1px 3px 0 #D4D4D5}.ui.brown.card:hover,.ui.brown.cards>.card:hover,.ui.cards>.brown.card:hover{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #975b33,0 1px 3px 0 #BCBDBD}.ui.cards>.grey.card,.ui.grey.card,.ui.grey.cards>.card{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #767676,0 1px 3px 0 #D4D4D5}.ui.cards>.grey.card:hover,.ui.grey.card:hover,.ui.grey.cards>.card:hover{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #838383,0 1px 3px 0 #BCBDBD}.ui.black.card,.ui.black.cards>.card,.ui.cards>.black.card{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #1B1C1D,0 1px 3px 0 #D4D4D5}.ui.black.card:hover,.ui.black.cards>.card:hover,.ui.cards>.black.card:hover{box-shadow:0 0 0 1px #D4D4D5,0 2px 0 0 #27292a,0 1px 3px 0 #BCBDBD}.ui.one.cards{margin-left:0;margin-right:0}.ui.one.cards>.card{width:100%}.ui.two.cards{margin-left:-1em;margin-right:-1em}.ui.two.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.three.cards{margin-left:-1em;margin-right:-1em}.ui.three.cards>.card{width:calc(33.33333333% - 2em);margin-left:1em;margin-right:1em}.ui.four.cards{margin-left:-.75em;margin-right:-.75em}.ui.four.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.five.cards{margin-left:-.75em;margin-right:-.75em}.ui.five.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.six.cards{margin-left:-.75em;margin-right:-.75em}.ui.six.cards>.card{width:calc(16.66666667% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.seven.cards{margin-left:-.5em;margin-right:-.5em}.ui.seven.cards>.card{width:calc(14.28571429% - 1em);margin-left:.5em;margin-right:.5em}.ui.eight.cards{margin-left:-.5em;margin-right:-.5em}.ui.eight.cards>.card{width:calc(12.5% - 1em);


t i = 0; i < nslabs; i++)
                    {
                        erg->slab_torque_v[i] = er->mpi_outbuf[count++];
                    }
                }
            }
        }
    }

    /* Output */
    if (MASTER(cr))
    {
        /* Angle and torque for each rotation group */
        for (auto& ergRef : er->enfrotgrp)
        {
            gmx_enfrotgrp*  erg  = &ergRef;
            const t_rotgrp* rotg = erg->rotg;
            bFlex                = ISFLEX(rotg);

            /* Output to main rotation output file: */
            if (do_per_step(step, er->nstrout))
            {
                if (erotgFitPOT == rotg->eFittype)
                {
                    fitangle = get_fitangle(erg);
                }
                else
                {
                    if (bFlex)
                    {
                        fitangle = erg->angle_v; /* RMSD fit angle */
                    }
                    else
                    {
                        fitangle = (erg->angle_v / erg->weight_v) * 180.0 * M_1_PI;
                    }
                }
                fprintf(er->out_rot, "%12.4f", fitangle);
                fprintf(er->out_rot, "%12.3e", erg->torque_v);
                fprintf(er->out_rot, "%12.3e", erg->V);
            }

            if (do_per_step(step, er->nstsout))
            {
                /* Output to torque log file: */
                if (bFlex)
                {
                    fprintf(er->out_torque, "%12.3e%6d", t, erg->groupIndex);
                    for (int i = erg->slab_first; i <= erg->slab_last; i++)
                    {
                        islab = i - erg->slab_first; /* slab index */
                        /* Only output if enough weight is in slab */
                        if (erg->slab_weights[islab] > rotg->min_gaussian)
                        {
                            fprintf(er->out_torque, "%6d%12.3e", i, erg->slab_torque_v[islab]);
                        }
                    }
                    fprintf(er->out_torque, "\n");
                }

                /* Output to angles log file: */
                if (erotgFitPOT == rotg->eFittype)
                {
                    fprintf(er->out_angles, "%12.3e%6d%12.4f", t, erg->groupIndex, erg->degangle);
                    /* Output energies at a set of angles around the reference angle */
                    for (int i = 0; i < rotg->PotAngle_nstep; i++)
                    {
                        fprintf(er->out_angles, "%12.3e", erg->PotAngleFit->V[i]);
                    }
                    fprintf(er->out_angles, "\n");
                }
            }
        }
        if (do_per_step(step, er->nstrout))
        {
            fprintf(er->out_rot, "\n");
        }
    }
}

/* Add the forces from enforced rotation potential to the local forces.
 * Should be called after the SR forces have been evaluated */
real add_rot_forces(gmx_enfrot* er, rvec f[], const t_commrec* cr, int64_t step, real t)
{
    real Vrot = 0.0; /* If more than one rotation group is present, Vrot
                        assembles the local parts from all groups         */

    /* Loop over enforced rotation groups (usually 1, though)
     * Apply the forces from rotation potentials */
    for (auto& ergRef : er->enfrotgrp)
    {
        gmx_


v-1.5a.75.75 0 01.75-.75zM2.75 8a.75.75 0 01.75.75v.268A1.72 1.72 0 013.75 9h.5a.75.75 0 010 1.5h-.5a.25.25 0 00-.25.25v.75c0 .28.114.532.3.714a.75.75 0 01-1.05 1.072A2.495 2.495 0 012 11.5V8.75A.75.75 0 012.75 8zm10.5 0a.75.75 0 01.75.75v4.5a.75.75 0 01-.75.75h-2.5a.75.75 0 010-1.5h1.75v-2h-.75a.75.75 0 010-1.5h.75v-.25a.75.75 0 01.75-.75zM6 9.75A.75.75 0 016.75 9h2.5a.75.75 0 010 1.5h-2.5A.75.75 0 016 9.75zm-1 2.5v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>'}}},star:{heights:{16:{width:16,path:'<path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path>'}}}},C=function(e,o){e=b(e).replace(/^octicon-/,""),f(y,e)||(e="mark-github");var t=o>=24&&24 in y[e].heights?24:16,r=y[e].heights[t];return'<svg viewBox="0 0 '+r.width+" "+t+'" width="'+o*r.width/t+'" height="'+o+'" class="octicon octicon-'+e+'" aria-hidden="true">'+r.path+"</svg>"},M={},A=function(e,o){var t=M[e]||(M[e]=[]);if(!(t.push(o)>1)){var r=g((function(){for(delete M[e];o=t.shift();)o.apply(null,arguments)}));if(l){var n=new a;m(n,"abort",r),m(n,"error",r),m(n,"load",(function(){var e;try{e=JSON.parse(this.responseText)}catch(e){return void r(e)}r(200!==this.status,e)})),n.open("GET",e),n.send()}else{var i=this||window;i._=function(e){i._=null,r(200!==e.meta.status,


onWindow {
    pub fn new(application: &Application) -> ApplicationWindow {
        skip_assert_initialized!();
        unsafe {
            Widget::from_glib_none(ffi::gtk_application_window_new(application.to_glib_none().0)).downcast_unchecked()
        }
    }
}

pub trait ApplicationWindowExt {
    #[cfg(any(feature = "v3_20", feature = "dox"))]
    fn get_help_overlay(&self) -> Option<ShortcutsWindow>;

    #[cfg(any(feature = "v3_6", feature = "dox"))]
    fn get_id(&self) -> u32;

    fn get_show_menubar(&self) -> bool;

    #[cfg(any(feature = "v3_20", feature = "dox"))]
    fn set_help_overlay<'a, P: Into<Option<&'a ShortcutsWindow>>>(&self, help_overlay: P);

    fn set_show_menubar(&self, show_menubar: bool);

    fn connect_property_show_menubar_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
}

impl<O: IsA<ApplicationWindow> + IsA<glib::object::Object>> ApplicationWindowExt for O {
    #[cfg(any(feature = "v3_20", feature = "dox"))]
    fn get_help_overlay(&self) -> Option<ShortcutsWindow> {
        unsafe {
            from_glib_none(ffi::gtk_application_window_get_help_overlay(self.to_glib_none().0))
        }
    }

    #[cfg(any(feature = "v3_6", feature = "dox"))]
    fn get_id(&self) -> u32 {
        unsafe {
            ffi::gtk_application_window_get_id(self.to_glib_none().0)
        }
    }

    fn get_show_menubar(&self) -> bool {
        unsafe {
            from_glib(ffi::gtk_application_window_get_show_menubar(self.to_glib_none().0))
        }
    }

    #[cfg(any(feature = "v3_20", feature = "dox"))]
    fn set_help_overlay<'a, P: Into<Option<&'a ShortcutsWindow>>>(&self, help_overlay: P) {
        let help_overlay = help_overlay.into();
        let help_overlay = help_overlay.to_glib_none();
        unsafe {
            ffi::gtk_application_window_set_help_overlay(self.to_glib_none().0, help_overlay.0);
        }
    }

    fn set_show_menubar(&self, show_menubar: bool) {
        unsafe {
            ffi::gtk_application_window_set_show_menubar(self.to_glib_none().0, show_menubar.to_glib());
        }
    }

    fn connect_property_show_menubar_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
        unsafe {
            let f: Box_<Box_<Fn(&Self) + 'static>> = Box_::new(Box_::new(f));
            connect(self.to_glib_none().0, "notify::show-menubar",
                transmute(notify_show_menubar_trampoline::<Self> as usize), Box_::into_raw(f) as *mut _)
        }
    }
}

unsafe extern "C" fn notify_show_menubar_trampoline<P>(this: *mut ffi::GtkApplicationWindow, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ApplicationWindow> {
    let f: &&(Fn(&P) + 'static) = transmute(f);
    f(&ApplicationWindow::from_glib_borrow(this


osResistance", weightKey = { "gloves", "default", }, weightVal = { 250, 0 }, modTags = { "chaos", "resistance", "minion" }, },
	["HellscapeUpsideMinionChaosResistance4"] = { type = "ScourgeUpside", affix = "", "Minions have +(22-25)% to Chaos Resistance", statOrder = { 2787 }, level = 68, group = "MinionChaosResistance", weightKey = { "gloves", "default", }, weightVal = { 250, 0 }, modTags = { "chaos", "resistance", "minion" }, },
	["HellscapeUpsideStunAndBlockRecovery2"] = { type = "ScourgeUpside", affix = "", "(10-11)% increased Stun and Block Recovery", statOrder = { 1781 }, level = 45, group = "StunRecovery", weightKey = { "gloves", "armour", "belt", "default", }, weightVal = { 0, 500, 500, 0 }, modTags = {  }, },
	["HellscapeUpsideStunAndBlockRecovery3"] = { type = "ScourgeUpside", affix = "", "(12-13)% increased Stun and Block Recovery", statOrder = { 1781 }, level = 68, group = "StunRecovery", weightKey = { "gloves", "armour", "belt", "default", }, weightVal = { 0, 500, 500, 0 }, modTags = {  }, },
	["HellscapeUpsideStunAndBlockRecovery4__"] = { type = "ScourgeUpside", affix = "", "(14-15)% increased Stun and Block Recovery", statOrder = { 1781 }, level = 68, group = "StunRecovery", weightKey = { "gloves", "armour", "belt", "default", }, weightVal = { 0, 500, 500, 0 }, modTags = {  }, },
	["HellscapeUpsideChanceToAvoidFreezeAndChill2_"] = { type = "ScourgeUpside", affix = "", "(26-30)% chance to Avoid being Chilled", "(26-30)% chance to Avoid being Frozen", statOrder = { 1725, 1726 }, level = 45, group = "ChanceToAvoidFreezeAndChill", weightKey = { "ring", "default", }, weightVal = { 500, 0 }, modTags = { "elemental", "cold", "ailment" }, },
	["HellscapeUpsideChanceToAvoidFreezeAndChill3"] = { type = "ScourgeUpside", affix = "", "(31-35)% chance to Avoid being Chilled", "(31-35)% chance to Avoid being Frozen", statOrder = { 1725, 1726 }, level = 68, group = "ChanceToAvoidFreezeAndChill", weightKey = { "ring", "default", }, weightVal = { 500, 0 }, modTags = { "elemental", "cold", "ailment" }, },
	["HellscapeUpsideChanceToAvoidFreezeAndChill4"] = { type = "ScourgeUpside", affix = "", "(36-40)% chance to Avoid being Chilled", "(36-40)% chance to Avoid being Frozen", statOrder = { 1725, 1726 }, level = 68, group = "ChanceToAvoidFreezeAndChill", weightKey = { "ring", "default", }, weightVal = { 500, 0 }, modTags = { "elemental", "cold", "ailment" }, },
	["HellscapeUpsideChanceToAvoidShock2"] = { type = "ScourgeUpside", affix = "", "(26-30)% chance to Avoid being Shocked", statOrder = { 1729 }, level = 45, group = "AvoidShock", weightKey = { "ring", "default", }, weightVal = { 500, 0 }, modTags = { "elemental", "lightning", "ailment" }, },
	["HellscapeUpsideChanceToAvoidShock3"] = { type = "ScourgeUpside", affix = "", "(31-35)% chance to Avoid being Shocked", statOrder = { 1729 }, level = 68


from pytest import fixture

from edspdf.structures import Page, PDFDoc, TextBox

@fixture
def single_page_doc() -> PDFDoc:
    doc = PDFDoc(id="doc", content=b"", pages=[])
    doc.pages = [Page(doc=doc, page_num=0, width=1.0, height=1.0)]
    doc.content_boxes = [
        TextBox(doc=doc, page_num=0, text="foo", x0=0.1, y0=0.1, x1=0.9, y1=0.2),
        TextBox(doc=doc, page_num=0, text="foo", x0=0.1, y0=0.6, x1=0.4, y1=0.7),
        TextBox(doc=doc, page_num=0, text="foo", x0=0.1, y0=0.6, x1=0.9, y1=0.7),
    ]
    return doc

@fixture
def multi_page_doc() -> PDFDoc:
    doc = PDFDoc(id="doc", content=b"")
    doc.pages = [
        Page(doc=doc, page_num=0, width=1.0, height=1.0),
        Page(doc=doc, page_num=1, width=1.0, height=1.0),
    ]
    doc.content_boxes = [
        TextBox(doc=doc, page_num=0, text="foo", x0=0.1, y0=0.1, x1=0.9, y1=0.2),
        TextBox(doc=doc, page_num=0, text="foo", x0=0.1, y0=0.6, x1=0.4, y1=0.7),
        TextBox(doc=doc, page_num=0, text="foo", x0=0.1, y0=0.6, x1=0.9, y1=0.7),
        TextBox(doc=doc, page_num=1, text="foo", x0=0.1, y0=0.1, x1=0.9, y1=0.2),
        TextBox(doc=doc, page_num=1, text="foo", x0=0.1, y0=0.6, x1=0.4, y1=0.7),
        TextBox(doc=doc, page_num=1, text="foo", x0=0.1, y0=0.6, x1=0.9, y1=0.7),
    ]

    return doc


namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
    /// <summary>
    /// <para>表示 [POST] /datacube/getcardcardinfo 接口的响应。</para>
    /// </summary>
    public class DataCubeGetCardCardInfoResponse : WechatApiResponse
    {
        public static class Types
        {
            public class Data : DataCubeGetCardBusinessInfoResponse.Types.Data
            {
                /// <summary>
                /// 获取或设置卡券模板编号。
                /// </summary>
                [Newtonsoft.Json.JsonProperty("card_id")]
                [System.Text.Json.Serialization.JsonPropertyName("card_id")]


a set as a string
function Set.tostring(set)
    local l = {}
    for e in pairs(set) do
        l[#l+1] = e
    end
    return "{" .. table.concat(l, ", ") .. "}"
end

-- print a set
function Set.print(s)
    print(Set.tostring(s))
end

-- set containment
function mt.__le(a, b)
    for k in pairs(a) do
        if not b[k] then return false end
    end
    return true
end

function mt.__lt(a, b)
    return a <= b and not (b <= a)
end

function mt.__eq(a, b)
    return a <= b and b <= a
end

mt.__add = Set.union
mt.__mul = Set.intersection
mt.__tostring = Set.tostring
mt.__metatable = "not your business"

return Set


// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2019 MediaTek Inc.
 * Author: James Liao <jamesjj.liao@mediatek.com>
 *         Fabien Parent <fparent@baylibre.com>
 */

#include <linux/clk-provider.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>

#include "clk-mtk.h"
#include "clk-gate.h"

#include <dt-bindings/clock/mt8516-clk.h>

static const struct mtk_gate_regs aud_cg_regs = {
	.set_ofs = 0x0,
	.clr_ofs = 0x0,
	.sta_ofs = 0x0,
};

#define GATE_AUD(_id, _name, _parent, _shift) {	\
		.id = _id,			\
		.name = _name,			\
		.parent_name = _parent,		\
		.regs = &aud_cg_regs,		\
		.shift = _shift,		\
		.ops = &mtk_clk_gate_ops_no_setclr,		\
	}

static const struct mtk_gate aud_clks[] __initconst = {
	GATE_AUD(CLK_AUD_AFE, "aud_afe", "clk26m_ck", 2),
	GATE_AUD(CLK_AUD_I2S, "aud_i2s", "i2s_infra_bck", 6),
	GATE_AUD(CLK_AUD_22M, "aud_22m", "rg_aud_engen1", 8),
	GATE_AUD(CLK_AUD_24M, "aud_24m", "rg_aud_engen2", 9),
	GATE_AUD(CLK_AUD_INTDIR, "aud_intdir", "rg_aud_spdif_in", 15),
	GATE_AUD(CLK_AUD_APLL2_TUNER, "aud_apll2_tuner", "rg_aud_engen2", 18),
	GATE_AUD(CLK_AUD_APLL_TUNER, "aud_apll_tuner", "rg_aud_engen1", 19),
	GATE_AUD(CLK_AUD_HDMI, "aud_hdmi", "apll12_div4", 20),
	GATE_AUD(CLK_AUD_SPDF, "aud_spdf", "apll12_div6", 21),
	GATE_AUD(CLK_AUD_ADC, "aud_adc", "aud_afe", 24),
	GATE_AUD(CLK_AUD_DAC, "aud_dac", "aud_afe", 25),
	GATE_AUD(CLK_AUD_DAC_PREDIS, "aud_dac_predis", "aud_afe", 26),
	GATE_AUD(CLK_AUD_TML, "aud_tml", "aud_afe", 27),
};

static void __init mtk_audsys_init(struct device_node *node)
{
	struct clk_onecell_data *clk_data;
	int r;

	clk_data = mtk_alloc_clk_data(CLK_AUD_NR_CLK);

	mtk_clk_register_gates(node, aud_clks, ARRAY_SIZE(aud_clks), clk_data);

	r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
	if (r)
		pr_err("%s(): could not register clock provider: %d\n",
			__func__, r);

}
CLK_OF_DECLARE(mtk_audsys, "mediatek,mt8516-audsys", mtk_audsys_init);


#include <stdio.h>
#include <stdlib.h>

#include "config.h"
#include <string.h>
#include "fm.h"
#ifdef HAVE_WINDOWS_H
#include <windows.h>
#define sleep(x) Sleep(1000*x)
#else
#include <netinet/in.h>
#include <arpa/inet.h>
extern int sleep();
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif

#include "fm_internal.h"
extern int (*establish_server_connection_ptr)(FMContext fmc, action_t action);

static int
serverAtomicWrite(void* fd, void *buffer, int length)
{
     char *junk_result_str;
     int junk_errno;
     return ffs_server_write_func(fd, buffer, length, &junk_errno,
				&junk_result_str);
}

int
main(int argc, char **argv)
{
    FMContext context = create_FMcontext();
    char format_dump_char = 'D';

/*    if (os_sockets_init_func != NULL) os_sockets_init_func();*/

    if (argc > 1) format_dump_char = 'd';
    if (establish_server_connection_ptr(context, host_and_fallback) == 0) {
	printf("Failed to contact format server\n");
	return 0;
    }

    if (serverAtomicWrite(context->server_fd, &format_dump_char, 1) != 1) {
	fprintf(stderr, "dump write failed\n");
	exit(1);
    }
    if (format_dump_char == 'D') {
	/* dumping formats */
	int format_count, i;
	server_ID_type *format_list;

	if (serverAtomicRead(context->server_fd, &format_count, 4) != 4) {
	    fprintf(stderr, "dump count read failed\n");
	    exit(1);
	}
	format_count = ntohl(format_count);
	printf("There are %d formats registered\n", format_count);
	format_list = malloc(sizeof(format_list[0]) * format_count);
	for (i=0; i < format_count; i++) {
	    if (serverAtomicRead(context->server_fd, &format_list[i].length,
				 4) != 4) {
		fprintf(stderr, "dump list read failed\n");
		exit(1);
	    }
	    format_list[i].length = ntohl(format_list[i].length);
	    format_list[i].value = malloc(format_list[i].length);
	    if (serverAtomicRead(context->server_fd, format_list[i].value,
				 format_list[i].length)
		!= format_list[i].length) {
		fprintf(stderr, "dump list read failed\n");
		exit(1);
	    }
	}
	for (i=0; i < format_count; i++) {
	    FMFormat tmp_format = FMformat_from_ID(context, format_list[i].value);
	    printf("\n\nFormat %d (server size %d) is:\n", i,
		   tmp_format->server_format_rep->format_rep_length);
	    if ( tmp_format != NULL ) {
		dump_FMFormat(tmp_format);
	    } else {
		printf("Get format failed!\n");
	    }
	}
    } else {
	/* dumping hosts */
	int host_count, i;
	if (serverAtomicRead(context->server_fd, &host_count, 4) != 4) {
	    fprintf(stderr, "dump count read failed\n");
	    exit(1);
	}
	host_count = ntohl(host_count);
	printf("There are %d foreign hosts which have used this server\n", host_count);
	for (i=0; i < host_count; i++) {
	    int ip_addr;
	    int str_len;
	    char time_str[1024];
	    char *hostname;
	    struct hostent *host;

	    if (serverAtomicRead(context->server_fd, &ip_addr, 4) != 4) {
		fprintf(stderr, "dump ip read failed\n");
		exit(1);
	    }
	    if (serverAtomicRead(context->server_fd, &str_len, 4) != 4) {
		fprintf(stderr, "dump str len read failed\n");
		exit(1);
	    }
	    str_len = ntohl(str_len);
	    if (str_len > sizeof(time_str)) {
		fprintf(stderr, "time string too long\n");
		exit(1);
	    }
	    if (serverAtomicRead(context->server_fd, &time_str[0], str_len) !=
		str_len) {
		fprintf(stderr, "dump time string read failed\n");
		exit(1);
	    }
	    host = gethostbyaddr((char*)&ip_addr, sizeof(ip_addr), AF_INET);
	    if (host != NULL) {
		hostname = host->h_name;
	    } else {
		struct in_addr IP;
		IP.s_addr = ip_addr;
		hostname = (char*)inet_ntoa(IP);
	    }
	    printf("Host %s, active since %s\n", hostname, time_str);
	}
    }
    return 0;
}


/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

#include "libuutil_common.h"

#include <sys/time.h>

#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <unistd.h>

#ifdef _LP64
#define	TMPPATHFMT	"%s/uu%ld"
#else /* _LP64 */
#define	TMPPATHFMT	"%s/uu%lld"
#endif /* _LP64 */

/*ARGSUSED*/
int
uu_open_tmp(const char *dir, uint_t uflags)
{
	int f;
	char *fname = uu_zalloc(PATH_MAX);

	if (fname == NULL)
		return (-1);

	for (;;) {
		(void) snprintf(fname, PATH_MAX, "%s/uu%lld", dir, gethrtime());

		f = open(fname, O_CREAT | O_EXCL | O_RDWR, 0600);

		if (f >= 0 || errno != EEXIST)
			break;
	}

	if (f >= 0)
		(void) unlink(fname);

	uu_free(fname);

	return (f);
}


	b, err := json.Marshal(req)
	if err != nil {
		return err
	}

	this.hub.ByteMessageChannel <- &cascade.HubByteMessage{Peer: nil, Message: b}
	return nil
}

///////////////// response and quotes /////////////////
func (this *QuoteApi) OnLogin(msg *RspCommon) {
	this.spi.OnLogin(msg)
}
func (this *QuoteApi) OnError(msg *RspCommon) {
	this.spi.OnError(msg)
}
func (this *QuoteApi) OnSub(msg *RspCommon) {
	this.spi.OnSub(msg)
}
func (this *QuoteApi) OnUnsub(msg *RspCommon) {
	this.spi.OnUnsub(msg)
}
func (this *QuoteApi) OnKline(msg *RspCommon) {
	this.spi.OnKline(msg)
}
func (this *QuoteApi) OnTicker(msg *RspCommon) {
	this.spi.OnTicker(msg)
}
func (this *QuoteApi) OnDepth(msg *RspCommon) {
	this.spi.OnDepth(msg)
}
func (this *QuoteApi) OnDepthL2(msg *RspCommon) {
	this.spi.OnDepthL2(msg)
}
package babeltrader_utils_go_test

import (
	"fmt"
	"testing"
	"time"

	common "github.com/MuggleWei/babel-trader/src/babeltrader-common-go"
	utils "github.com/MuggleWei/babel-trader/src/babeltrader-utils-go"
)

func TestAddOrder(t *testing.T) {
	cacheManager := utils.NewOrderCacheManager()
	order := common.MessageOrder{
		OrderId:   "xxx",
		OutsideId: "yyy",
	}

	err := cacheManager.AddCache(&order)
	if err != nil {
		t.Error(err.Error())
	}

	ret, err := cacheManager.GetOrder(order.OutsideId)
	if err != nil {
		t.Error(err.Error())
	}
	if ret.OutsideId != order.OutsideId {
		s := fmt.Sprintf("outside order id not equal: %v != %v", ret.OutsideId, order.OutsideId)
		t.Error(s)
	}
	if ret.OrderId != order.OrderId {
		t.Error("order id not equal")
	}
}

func TestRepeatedAddOrder(t *testing.T) {
	cacheManager := utils.NewOrderCacheManager()
	order := common.MessageOrder{
		OrderId:   "xxx",
		OutsideId: "yyy",
	}

	err := cacheManager.AddCache(&order)
	if err != nil {
		t.Error(err.Error())
	}

	err = cacheManager.AddCache(&order)
	if err == nil {
		t.Error("failed repeated add")
	}
}

func TestDelExpiredOrder(t *testing.T) {
	cacheManager := utils.NewOrderCacheManager()
	order := common.MessageOrder{
		OrderId:   "xxx",
		OutsideId: "yyy",
	}

	err := cacheManager.AddCache(&order)
	if err != nil {
		t.Error(err.Error())
	}

	time.Sleep(time.Duration(2) * time.Second)
	cacheManager.CleanExpire(1)
	_, err = cacheManager.GetOrder(order.OutsideId)
	if err != nil {
		t.Error(err.Error())
	}

	cacheManager.UpdateOrderStatus(order.OutsideId, common.OrderStatus_AllDealed)
	time.Sleep(time.Duration(2) * time.Second)
	cacheManager.CleanExpire(1)
	_, err = cacheManager.GetOrder(order.OutsideId)
	if err == nil {
		t.Error("failed to clean expired order")
	}
}
package babeltrader_okex_v3_test

import (
	"testing"

	common


 "Bottes en tissu trempé",
[62120] = "Ceinture en tissu trempé",
[62121] = "Protège-épaules en mailles noircis",
[62122] = "Pantalon en mailles noirci",
[62123] = "Gants en mailles noircis",
[62124] = "Brassards en mailles noircis",
[62125] = "Bottes en mailles noircies",
[62126] = "Plastron en plaques blanchies",
[62127] = "Protège-épaules en plaques blanchies",
[62128] = "Brassards en plaques blanchies",
[62129] = "Bottes en plaques blanchies",
[62130] = "Ceinture en plaques blanchies",
[62131] = "Ceinture en mailles noircie",
[62132] = "Armure en mailles noircie",
[62133] = "Chapeau en tissu trempé",
[62134] = "Heaume en plaques blanchies",
[62135] = "Casque en cuir roussi",
[62136] = "Diadème en mailles noirci",
[62137] = "Note trempée",
[62138] = "Tête de Kigrince",
[62139] = "[Monster] - Trident, Cataclysm Naga Orange (Glow)",
[62140] = "Brassards secs",
[62141] = "Ceinture du laconique",
[62142] = "Bottes de béhémoth",
[62143] = "Gants ouvre-gorge",
[62144] = "Brassards d'occasion favorable",
[62145] = "Ceinture de l'imbécile bavard",
[62146] = "Bottes de béhémoth",
[62147] = "Gants ouvre-gorge",
[62148] = "Gants de Gandling",
[62149] = "Fardeau du temps",
[62150] = "Brassards d'élimination",
[62151] = "Ceinture de corruption persistante",
[62152] = "Gants de Gandling",
[62153] = "Fardeau du temps",
[62154] = "Brassards d'élimination",
[62155] = "Ceinture de corruption persistante",
[62156] = "Chevalière de Grant",
[62157] = "Gilet de fermier",
[62158] = "Heaume de propriété",
[62159] = "Carabine de chasseur d'ours",
[62160] = "Bague de Vandis",
[62161] = "Gilet bullmastiff",
[62162] = "Heaume territorial",
[62163] = "Carabine du chasseur de renard",
[62164] = "Bague de Vaillepoing",
[62165] = "Ceinture de gardien des cryptes",
[62166] = "Barrière spirituelle",
[62167] = "Cape de l'agité",
[62168] = "Anneau rougeoyant",
[62169] = "Ceinture hésitante",
[62170] = "Couvercle de chaudron de peste",
[62171] = "Cape de la terre salée",
[62172] = "Cape forestière verte",
[62173] = "Bottes de la terre en fleurs",
[62174] = "Brassards du retour du fauve",
[62175] = "Hachette de bûcheron",
[62176] = "Cape rougepin",
[62177] = "Protège-chevilles de Kelly",
[62178] = "Masse écrabouilleuse d'araignée",
[62179] = "Brûleur d'araignées",
[62180] = "Bague d'arachnide querelle


);
        info.Publisher = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.Publisher);
        info.Imprint = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.Imprint);
        info.Characters = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.Characters);
        info.Translator = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.Translator);
        info.CoverArtist = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.CoverArtist);
        info.Teams = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.Teams);
        info.Locations = Services.Tasks.Scanner.Parser.Parser.CleanAuthor(info.Locations);

        // We need to convert GTIN to ISBN
        if (!string.IsNullOrEmpty(info.GTIN))
        {
            // This is likely a valid ISBN
            if (info.GTIN[0] == '0')
            {
                var potentialISBN = info.GTIN.Substring(1, info.GTIN.Length - 1);
                if (ArticleNumberHelper.IsValidIsbn13(potentialISBN))
                {
                    info.Isbn = potentialISBN;
                }
            } else if (ArticleNumberHelper.IsValidIsbn10(info.GTIN) ||


 "\f23b";
@fa-var-yc-square: "\f1d4";
@fa-var-yelp: "\f1e9";
@fa-var-yen: "\f157";
@fa-var-youtube: "\f167";
@fa-var-youtube-play: "\f16a";
@fa-var-youtube-square: "\f166";

@font-face{font-family:Material-Design-Iconic-Font;src:url(..//fonts/Material-Design-Iconic-Font.woff2?v=2.2.0) format('woff2'),url(..//fonts/Material-Design-Iconic-Font.woff?v=2.2.0) format('woff'),url(..//fonts/Material-Design-Iconic-Font.ttf?v=2.2.0) format('truetype')}.zmdi{display:inline-block;font:normal normal normal 14px/1 'Material-Design-Iconic-Font';font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.zmdi-hc-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.zmdi-hc-2x{font-size:2em}.zmdi-hc-3x{font-size:3em}.zmdi-hc-4x{font-size:4em}.zmdi-hc-5x{font-size:5em}.zmdi-hc-fw{width:1.28571429em;text-align:center}.zmdi-hc-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.zmdi-hc-ul>li{position:relative}.zmdi-hc-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.zmdi-hc-li.zmdi-hc-lg{left:-1.85714286em}.zmdi-hc-border{padding:.1em .25em;border:solid .1em #9e9e9e;border-radius:2px}.zmdi-hc-border-circle{padding:.1em .25em;border:solid .1em #9e9e9e;border-radius:50%}.zmdi.pull-left{float:left;margin-right:.15em}.zmdi.pull-right{float:right;margin-left:.15em}.zmdi-hc-spin{-webkit-animation:zmdi-spin 1.5s infinite linear;animation:zmdi-spin 1.5s infinite linear}.zmdi-hc-spin-reverse{-webkit-animation:zmdi-spin-reverse 1.5s infinite linear;animation:zmdi-spin-reverse 1.5s infinite linear}@-webkit-keyframes zmdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes zmdi-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes zmdi-spin-reverse{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes zmdi-spin-reverse{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.zmdi-hc-rotate-90{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.zmdi-hc-rotate-180{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.zmdi-hc-rotate-270{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);t


()->m_bFootStepsSounds
            || g_pBaldurChitin->GetObjectGame()->GetCharacterPortraitNum(m_id) == -1)
        && m_nSequence != nSequence
        && m_pArea == g_pBaldurChitin->GetObjectGame()->GetVisibleArea()
        && m_pArea != NULL
        && nSequence != SEQ_DIE
        && nSequence != SEQ_SLEEP
        && nSequence != SEQ_TWITCH
        && nSequence != SEQ_WALK
        && nSequence != SEQ_AWAKE) {
        if (!m_sndReady.IsSoundPlaying()) {
            // NOTE: Uninline.
            char* sndReady = m_animation.GetSndReady();

            if (sndReady[0] != '\0') {
                // NOTE: Uninline.
                m_sndReady.SetResRef(CResRef(sndReady), TRUE, TRUE);

                delete sndReady;

                m_sndReady.SetLoopingFlag(1);
                m_sndReady.Play(m_pos.x, m_pos.y, m_posZ, FALSE);
            }
        }
    } else {
        m_sndReady.Stop();
    }

    SHORT nDirection = m_nDirection & 0xFE;
    CItem* curWeapon;
    const ITEM_ABILITY* curAttack;

    switch (nSequence) {
    case SEQ_ATTACK:
        curWeapon = m_equipment.m_items[m_equipment.m_selectedWeapon];
        if (curWeapon != NULL) {
            curWeapon->Demand();
            curAttack = curWeapon->GetAbility(m_equipment.m_selectedWeaponAbility);
        } else {
            SelectWeaponAbility(CGameSpriteEquipment::SLOT_FIST, 0, 0, 1);
            curAttack = &DEFAULT_ATTACK;
        }

        if (curAttack == NULL) {
            curAttack = &DEFAULT_ATTACK;
        }

        if (curAttack->type != 2) {
            LONG totalProb = 0;
            LONG prob = rand() % 100 + 1;
            for (int index = 0; index < 6 && prob > totalProb; index++) {
                totalProb += curAttack->attackProbability[index];
                if (prob <= totalProb) {
                    switch (index) {
                    case 0:
                        nSequence = SEQ_ATTACK_SLASH;
                        break;
                    case 1:
                        nSequence = SEQ_ATTACK_BACKSLASH;
                        break;
                    case 2:
                        nSequence = SEQ_ATTACK_JAB;
                        break;
                    default:
                        // __FILE__: C:\Projects\Icewind2\src\Baldur\ObjCreature.cpp
                        // __LINE__: 9748
                        UTIL_ASSERT(FALSE);
                    }
                    break;
                }
            }
        } else {
            nSequence = SEQ_SHOOT;
        }

        if (curWeapon != NULL) {
            curWeapon->Release();
        }

        if (nSequence == SEQ_HEAD_TURN) {
            // NOTE: Uninline.
            nSequence = GetIdleSequence();
        }
        break;
    case SEQ_DAMAGE:
        m_nBloodFlashAmount = 128;
        m_nDamageLocatorTime = 128;
        m_bBloodFlashOn = TRUE;
        g_pBaldurChitin->GetObjectGame()->UpdatePortrait(g_pBaldurChitin->GetObjectGame()->GetCharacterPortraitNum(m_id), 1);
        break;
    case SEQ_TWITCH:
        m_nTwitches = 0;


rn ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FileAccessLog.ProtoReflect.Descriptor instead.
func (*FileAccessLog) Descriptor() ([]byte, []int) {
	return file_envoy_extensions_access_loggers_file_v3_file_proto_rawDescGZIP(), []int{0}
}

func (x *FileAccessLog) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (m *FileAccessLog) GetAccessLogFormat() isFileAccessLog_AccessLogFormat {
	if m != nil {
		return m.AccessLogFormat
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/file/v3/file.proto.
func (x *FileAccessLog) GetFormat() string {
	if x, ok := x.GetAccessLogFormat().(*FileAccessLog_Format); ok {
		return x.Format
	}
	return ""
}

// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/file/v3/file.proto.
func (x *FileAccessLog) GetJsonFormat() *structpb.Struct {
	if x, ok := x.GetAccessLogFormat().(*FileAccessLog_JsonFormat); ok {
		return x.JsonFormat
	}
	return nil
}

// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/file/v3/file.proto.
func (x *FileAccessLog) GetTypedJsonFormat() *structpb.Struct {
	if x, ok := x.GetAccessLogFormat().(*FileAccessLog_TypedJsonFormat); ok {
		return x.TypedJsonFormat
	}
	return nil
}

func (x *FileAccessLog) GetLogFormat() *v3.SubstitutionFormatString {
	if x, ok := x.GetAccessLogFormat().(*FileAccessLog_LogFormat); ok {
		return x.LogFormat
	}
	return nil
}

type isFileAccessLog_AccessLogFormat interface {
	isFileAccessLog_AccessLogFormat()
}

type FileAccessLog_Format struct {
	// Access log :ref:`format string<config_access_log_format_strings>`.
	// Envoy supports :ref:`custom access log formats <config_access_log_format>` as well as a
	// :ref:`default format <config_access_log_default_format>`.
	// This field is deprecated.
	// Please use :ref:`log_format <envoy_v3_api_field_extensions.access_loggers.file.v3.FileAccessLog.log_format>`.
	//
	// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/file/v3/file.proto.
	Format string `protobuf:"bytes,2,opt,name=format,proto3,oneof"`
}

type FileAccessLog_JsonFormat struct {
	// Access log :ref:`format dictionary<config_access_log_format_dictionaries>`. All values
	// are rendered as strings.
	// This field is deprecated.
	// Please use :ref:`log_format <envoy_v3_api_field_extensions.access_loggers.file.v3.FileAccessLog.log_format>`.
	//
	// Deprecated: Marked as deprecated in envoy/extensions/access_loggers/file/v3/file.proto.
	JsonFormat *structpb.Struct `protobuf:"bytes,3,opt,name=json_format,json=jsonFormat,proto3,oneof"`
}

type FileAccessLog_TypedJsonFormat struct {
	// Access log :ref:`format dictionary<config_access_log_format_dictionaries>`. Values are
	// rendered as strings, numbers, or boolean values as appropriate. Nested JSON objects may
	// be produced by some command operators (e.g.FILTER_STATE or DYNAMIC_METADATA).


a>

OnePassSignaturePacket

PacketList

PaddingPacket

PrivateKey

PublicKey

PublicKeyEncryptedSessionKeyPacket

PublicKeyPacket

PublicSubkeyPacket

SecretKeyPacket

SecretSubkeyPacket

Signature

SignaturePacket

SymEncryptedIntegrityProtectedDataPacket

SymEncryptedSessionKeyPacket

SymmetricallyEncryptedDataPacket

TrustPacket

UserAttributePacket

UserIDPacket

    Documentation generated by JSDoc 3.6.11

<!DOCTYPE html>

    <meta charset="utf-8">
    <title>JSDoc: Module: crypto/cipherMode</title>

    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">

Module: crypto/cipherMode

Cipher modes

Source:

        crypto/cipherMode/index.js, line 1

Methods

(static) getAEADMode


 (@skin= "material") {
        color: fade(@base-font-color, 54%);
    }
}

@{e-widget}.e-fileexplorer .e-statusbar .e-switchView .e-btn.e-select.e-active.e-flat .e-icon {
    & when (@skin= "material") {
        color: @accent-color;
    }
}

@{e-widget}.e-fileexplorer .e-split.e-widget:hover .e-in-wrap .e-split-btn.e-left-btn,
@{e-widget}.e-fe-toolbar.e-responsive-toolbar .e-split.e-widget:hover .e-in-wrap .e-split-btn.e-left-btn {
    & when (@skin= "material") {
        background-color: @grey-300;
    }
}

@{e-widget}.e-fileexplorer .e-tooltxt.e-feItem-Addressbar.e-active:after,
@{e-widget}.e-fe-toolbar.e-responsive-toolbar .e-tooltxt.e-feItem-Searchbar.e-active:after {
    & when (@skin= "material") {
        animation: none;
    }
}

@{e-widget}.e-fileexplorer .e-scrollbar .e-vscroll, @{e-widget}.e-fileexplorer .e-scrollbar .e-hscroll {
    & when (@skin= "material") {
        border-color: @default-border-color;
    }
}

@{e-widget}.e-fileexplorer .e-toolbar > .e-horizontal .e-fe-split-button .e-active, @{e-widget}.e-fe-toolbar.e-responsive-toolbar .e-horizontal .e-fe-split-button .e-active {
    & when (@skin= "material") {
        background: @grey-300;
        box-shadow: none;
    }
}

@{e-widget}.e-fileexplorer .e-statusbar .e-switchView .e-button.e-active:focus, @{e-widget}.e-fileexplorer .e-statusbar .e-switchView .e-button.e-active:focus:hover {
    & when (@skin= "material") {
        background-color: fade(@accent-color, 26%);
    }
}

@{e-widget}.e-fileexplorer .e-statusbar .e-switchView .e-active.e-btn.e-select .e-icon {
    & when (@skin= "material") {
        color: @accent-color;
    }
}

@{e-widget}.e-fileexplorer .e-toolbar
{
    & when not (@skin= "material") and not (@skin="office-365") {
        color: @default-icon-color;
        .default-gradient();
        border-color:@default-border-color;
    }
}

@{e-widget}.e-fileexplorer .e-toolbar {
    & when not (@skin= "material") and not (@skin="office-365") {
        .office-file-explorer-toolbar-bg-color;
    }
}

@{e-widget}.e-fe-toolbar.e-toolbar .e-feItem-Searchbar.e-tooltxt.e-active {
    background: transparent;
}
@{e-widget}.e-fileexplorer .e-grid .e-gridheader, @{e-widget}.e-fileexplorer .e-grid .e-gridheader.e-scrollcss, @{e-widget}.e-fileexplorer .e-grid .e-gridheader .e-headercell {
    background: @content-bg-color;
}
@{e-widget}.e-fileexplorer .e-alt_row, @{e-widget}.e-fileexplorer .e-gridheader ,
@{e-widget}.e-fileexplorer .e-gridheader .e-headercell, @{e-widget}.e-fileexplorer .e-grid .e-gridcontent,
@{e-widget}.e-fileexplorer .e-splitter .e-pane, @{e-wid


ddle;
}
button.icon-btn svg,
a.icon-link svg {
  display: inline-block;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 0;
  height: 1em;
  width: 1em;
  color: #555555;
}
button.icon-btn:focus svg,
a.icon-link:focus svg,
button.icon-btn:hover svg,
a.icon-link:hover svg {
  opacity: 0.65;
  /* csslint ignore:start */
  filter: alpha(opacity=65);
  /* csslint ignore:end */
}
button.icon-btn:active svg,
a.icon-link:active svg {
  color: #333333;
}
a.icon-link {
  display: inline-block;
}
button[disabled].icon-btn,
button[aria-disabled="true"].icon-btn,
a:not([href]).icon-link,
a[aria-disabled="true"].icon-link {
  cursor: default;
}
button[disabled].icon-btn svg,
button[aria-disabled="true"].icon-btn svg,
a:not([href]).icon-link svg,
a[aria-disabled="true"].icon-link svg {
  background-color: transparent;
  opacity: 0.5;
  /* csslint ignore:start */
  filter: alpha(opacity=50);
  /* csslint ignore:end */
}
a.img-link,
button.img-btn {
  border: 1px solid transparent;
}
a.img-link {
  display: inline-block;
}
a.img-link[href]:hover,
a.img-link[href]:focus {
  border-color: #999999;
}
a.img-link[href]:active {
  border-color: #767676;
}
a.img-link--visit:visited {
  background-color: #eeeeee;
}
button.img-btn {
  background-color: transparent;
  cursor: pointer;
  padding: 0;
}
button.img-btn:not([disabled]):hover,
button.img-btn:not([disabled]):focus {
  border-color: #999999;
}
button.img-btn:not([disabled]):active {
  border-color: #767676;
}
button.btn,
button.expand-btn,
a.fake-btn,
a.hijax-btn {
  border-radius: 3px;
  border-style: solid;
  border-width: 1px;
  height: 40px;
  font-family: inherit;
  font-size: 14px;
  font-weight: normal;
  margin: 0;
  text-align: center;
  vertical-align: middle;
}
button.btn,
button.expand-btn {
  line-height: 1.15;
}
button[disabled].btn,
button[aria-disabled="true"].btn,
button[disabled].expand-btn,
button[aria-disabled="true"].expand-btn {
  opacity: 0.5;
  /* csslint ignore:start */
  filter: alpha(opacity=50);
  /* csslint ignore:end */
}
a.fake-btn,
a.hijax-btn {
  box-sizing: border-box;
  display: inline-block;
  line-height: 40px;
  text-decoration: none;
}
button.expand-btn[aria-expanded="true"] .expand-btn__icon {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
button.btn,
button.expand-btn,
a.fake-btn,
a.hijax-btn {
  background-color: #ffffff;
  border-color: #cccccc;
  color: #0654ba;
  padding: 0 48px;
}
button.btn:hover,
button.expand-


Ok(())
    }

    pub fn get_mode(&self) -> Result<u32> {
        let mut mode = 0;
        unsafe {
            if GetConsoleMode(self.0, &mut mode) == 0 {
                return Err(Error::last_os_error());
            }
        }
        Ok(mode)
    }

    pub fn set_mode(&self, mode: &u32) -> Result<()> {
        unsafe {
            if SetConsoleMode(self.0, *mode) == 0 {
                return Err(Error::last_os_error());
            }
        }
        Ok(())
    }
}

pub struct ConsoleInfo(CONSOLE_SCREEN_BUFFER_INFO);

impl ConsoleInfo {
    pub fn of(handle: &Handle) -> Result<ConsoleInfo> {
        unsafe {
            let mut info: CONSOLE_SCREEN_BUFFER_INFO = zeroed();
            if GetConsoleScreenBufferInfo(handle.0, &mut info) == 0 {
                return Err(Error::last_os_error());
            }
            Ok(ConsoleInfo(info))
        }
    }

    pub fn buffer_size(&self) -> (i16, i16) {
        let coord = self.0.dwSize;
        (coord.X, coord.Y)
    }

    pub fn terminal_size(&self) -> (i16, i16) {
        let small_rect = self.0.srWindow;
        (
            small_rect.Right - small_rect.Left,
            small_rect.Bottom - small_rect.Top,
        )
    }

    pub fn window_pos(&self) -> (i16, i16, i16, i16) {
        let small_rect = self.0.srWindow;
        (
            small_rect.Left,
            small_rect.Right,
            small_rect.Bottom,
            small_rect.Top
        )
    }

    pub fn attributes(&self) -> u16 {
        self.0.wAttributes
    }

    pub fn cursor_pos(&self) -> (i16, i16) {
        let coord = self.0.dwCursorPosition;
        (coord.X, coord.Y)
    }
}
use redisql_lib::redis as r;

pub extern "C" fn reply(
    ctx: *mut r::rm::ffi::RedisModuleCtx,
    _argv: *mut *mut r::rm::ffi::RedisModuleString,
    _argc: ::std::os::raw::c_int,
) -> i32 {
    let context = r::rm::Context::new(ctx);
    let result = unsafe {
        r::rm::ffi::RedisModule_GetBlockedClientPrivateData.unwrap()(
            context.as_ptr(),
        ) as *mut *mut dyn r::RedisReply
    };
    let result_wrap: Box<*mut dyn r::RedisReply> =
        unsafe { Box::from_raw(result) };
    let mut result: Box<dyn r::RedisReply> =
        unsafe { Box::from_raw(*result_wrap) };
    result.reply(&context)
}

pub extern "C" fn reply_v2(
    ctx: *mut r::rm::ffi::RedisModuleCtx,
    _argv: *mut *mut r::rm::ffi::RedisModuleString,
    _argc: ::std::os::raw::c_int,
) -> i32 {
    let context = r::rm::Context::new(ctx);
    let result = unsafe {
        r::rm::ffi::RedisModule_GetBlockedClientPrivateData.unwrap()(
            context.as_ptr(),
        ) as *mut *mut dyn r::RedisReply
    };
    let result_wrap: Box<*mut dyn r::RedisReply> =
        unsafe { Box::from_raw(result) };
    let mut result: Box<dyn r::RedisReply> =
        unsafe { Box::from_raw(*result_wrap) };
    result.reply_v2(&context)
}

pub extern "C" fn timeout(
    ctx: *mut r::rm::ffi::RedisModuleCtx,
    _argv: *mut *mut r::rm::ffi::RedisModuleString,
    _argc: ::std::os::raw::c_int,
) -> i32 {
    unsafe { r::rm::ffi::RedisModule_ReplyWithNull.unwrap()(ctx) }
}

pub extern "C" fn free_privdata(_arg: *mut ::std::os::raw::c_void) {}
/*************************************************


this.url)
      .subscribe(data => {
        this.dataStore.employees = data;
        this._employees.next(Object.assign({}, this.dataStore).employees);
      },
      error => console.log(error)
      );
  }

  addEmployee(employee): void {
    this.http
      .post<Employee>(this.url, employee)
      .subscribe(data => {
        this.dataStore.employees.push(data);
        this._employees.next(Object.assign({}, this.dataStore).employees);
      },
      error => console.log(error)
      );
  }

}
import { evenfy } from "../utils/index.js";
import CoordAxisImpl from "./coordAxis.js";
import VectorImpl from "../calcu/vector.js";
type Options = {
  size?: [number, number];
  parent?: string | Element;
  id?: string;
  scale?: number;
};

export default class StageImpl implements Stage {
  scale = 100;
  width = 0;
  observers: Observer[] = [];
  height = 0;
  _originOffset: Vector = new VectorImpl([0, 0]);
  // originOffset = [100, 100]
  // 原点偏移位置，按照标准坐标系
  value: HTMLCanvasElement | null = null;
  wrapper: HTMLDivElement | null = null;
  ctx: CanvasRenderingContext2D | null = null;
  defaultOptions = {
    parent: document.body,
    id: "myCanvas"
  };
  constructor(options?: Options) {
    options = {
      ...this.defaultOptions,
      ...(options || {})
    };

    if (options.scale) this.scale = options.scale;
    this.build(options);
  }

  get originOffset() {
    return this._originOffset;
  }
  set originOffset(vector: Vector) {
    const [x, y] = vector.subtraction(this._originOffset).value;
    this.ctx?.translate(x * this.scale, y * this.scale);
    this._originOffset = vector;
  }

  build(options: Options) {
    const { size, parent, id } = options;

    /**
     * @description: 确定尺寸
     */
    if (size) {
      const [width, height] = size;
      this.width = evenfy(width);
      this.height = evenfy(height);
    } else {
      // 构造屏幕画布
      this.width = evenfy(window.screen.availWidth - 100);
      this.height = evenfy(window.screen.availHeight - 100);
    }
    // console.log("width", this.width)
    // console.log("height", this.height)

    // 父元素;
    let parentEle;

    if (typeof parent === "string") {
      parentEle = document.querySelector(parent);
    } else {
      parentEle = parent;
    }
    // 嵌入画布
    if (parentEle && id) {
      let divWrapper = document.createElement("div");
      let canvasElem = document.createElement("canvas");

      parentEle.appendChild(divWrapper);
      divWrapper.appendChild(canvasElem);
      divWrapper.id = id;
      canvasElem.width = this.width;
      canvasElem.height = this.height;

      this.wrapper = divWrapper;
      this.value = canvasElem;

      this.ctx = canvasElem.getContext("2d");

      if (!this.ctx) return;
      // 调整坐标系，从原点左上角移到中间
      this.ctx.translate(...this.center());
      // 翻转坐标系
      this.ctx.transform(1, 0, 0, -1, 0, 0);
    }
  }
  center(): Center {
    return [this.width / 2, this.height / 2];
  }

  setScale(scale: number) {
    this.scale = scale;
  }
  addObserver(line: Line | CoordAxis) {


前几个五苯乙醇数字是:

> 1，51，150，298，…

### 寻找第 n 个五角星号的程序

给定一个数字 **N** ，任务是找到 **N 第T5【号】。
**举例:****

> **输入:** N = 2
> **输出:** 51
> **说明:**
> 第二个五苯并呋喃酚编号为 51。
> **输入:** N = 3
> **输出:** 150

**方法:**第 N 个五角星数由公式给出:

*   S 边多边形的第 n 项= ![\frac{((S - 2)N^{2} - (S - 4)N)}{2}   ](img/06979e276f01f9c5a63c01dedda1d5b1.png "Rendered by QuickLaTeX.com")

*   因此 51 边多边形的第 N 项由
    给出

> ![Tn =\frac{((51 - 2)N^{2} - (51 - 4)N)}{2} =\frac{(49N^{2} - 47N)}{2}   ](img/9de15163e4c0f815c26e6e9c7cfc095c.png "Rendered by QuickLaTeX.com")

下面是上述方法的实现:

## C++

```
// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;

// Function to find the N-th
// Pentacontahenagon Number
int PentacontahenagonNum(int N)
{
    return (49 * N * N - 47 * N)
        / 2;
}

// Driver Code
int main()
{
    int N = 3;

// Function Call
    cout << "3rd Pentacontahenagon Number is "
        << PentacontahenagonNum(N);

    return 0;
}
```

## Java 语言(一种计算机语言，尤用于创建网站)

```
// Java program for the above approach
import java.util.*;
class GFG{

// Function to find the N-th
// Pentacontahenagon Number
static int PentacontahenagonNum(int N)
{
    return (49 * N * N - 47 * N) / 2;
}

// Driver Code
public static void main(String[] args)
{
    int N = 3;

    // Function Call
    System.out.print("3rd Pentacontahenagon Number is " +
                                PentacontahenagonNum(N));
}
}

// This code is contributed by Rajput-Ji
```

## 蟒蛇 3

```
# Python3 program for the above approach

# Function to find the N-th
# Pentacontahenagon Number
def PentacontahenagonNum(N):

    return (49 * N * N - 47 * N) // 2;

# Driver Code
N = 3;

# Function Call
print("3rd Pentacontahenagon Number is",
               PentacontahenagonNum(N));

# This code is contributed by Code_Mech
```

## C#

```
// C# program for the above approach
using System;
class GFG{

// Function to find the N-th
// Pentacontahenagon Number
static int PentacontahenagonNum(int N)
{
    return (49 * N * N - 47 * N) / 2;
}

// D


    @Test
    void testFindConfigInfoBaseByGroupFetchRows() {
        context.putWhereParameter(FieldConstant.GROUP_ID, groupId);
        MapperResult mapperResult = configInfoMapperByMySql.findConfigInfoBaseByGroupFetchRows(context);
        assertEquals(mapperResult.getSql(),
                "SELECT id,data_id,group_id,content FROM config_info WHERE group_id=? AND tenant_id=? LIMIT " + startRow + "," + pageSize);
        assertArrayEquals(new Object[] {groupId, tenantId}, mapperResult.getParamList().toArray());
    }

    @Test
    void testFindConfigInfoLike4PageCountRows() {
        MapperResult mapperResult = configInfoMapperByMySql.findConfigInfoLike4PageCountRows(context);
        assertEquals("SELECT count(*) FROM config_info WHERE tenant_id LIKE ?  AND app_name = ? ", mapperResult.getSql());
        assertArrayEquals(new Object[] {tenantId, appName}, mapperResult.getParamList().toArray());
    }

    @Test
    void testFindConfigInfoLike4PageFetchRows() {
        MapperResult mapperResult = configInfoMapperByMySql.findConfigInfoLike4PageFetchRows(context);
        assertEquals(mapperResult.getSql(), "SELECT id,data_id,group_id,tenant_id,app_name,content,md5,encrypted_data_key,type FROM config_info "
                + "WHERE tenant_id LIKE ?  AND app_name = ?  LIMIT " + startRow + "," + pageSize);
        assertArrayEquals(new Object[] {tenantId, appName}, mapperResult.getParamList().toArray());
    }

    @Test
    void testFindAllConfigInfoFetchRows() {
        MapperResult mapperResult = configInfoMapperByMySql.findAllConfigInfoFetchRows(context);
        assertEquals(mapperResult.getSql(),
                "SELECT t.id,data_id,group_id,tenant_id,app_name,content,md5  FROM (  SELECT id FROM config_info "
                        + "WHERE tenant_id LIKE ? ORDER BY id LIMIT ?,? ) g, config_info t  WHERE g.id = t.id ");
        assertArrayEquals(new Object[] {tenantId, startRow, pageSize}, mapperResult.getParamList().toArray());
    }

    @Test
    void testFindConfigInfosByIds() {
        MapperResult mapperResult = configInfoMapperByMySql.findConfigInfosByIds(context);
        assertEquals("SELECT id,data_id,group_id,tenant_id,app_name,content,md5 FROM config_info WHERE id IN (?, ?, ?, ?, ?) ",
                mapperResult.getSql());
        assertArrayEquals(mapperResult.getParamList().toArray(), ids.toArray());
    }

    @Test
    void testRemoveConfigInfoByIdsAtomic() {
        MapperResult mapperResult = configInfoMapperByMySql.removeConfigInfoByIdsAtomic(context);
        assertEquals("DELETE FROM config_info WHERE id IN (?, ?, ?, ?, ?) ", mapperResult.getSql());
        assertArrayEquals(mapperResult.getParamList().toArray(), ids.toArray());
    }

    @Test
    void testGetTableName() {
        String sql = configInfoMapperByMySql.getTableName();
        assertEquals(TableConstant.CONFIG_INFO, sql);
    }

    @Test
    void testGetDataSource() {
        String sql = configInfoMapperByMySql.getDataSource();
        assertEquals(DataSourceConstant.MYSQL, sql);
    }

    @Test
    void testUpdateConfigInfoAtomicCas() {
        String newContent = "new Content";
        String newMD5 = "newMD5";
        String srcIp = "1.1.1.1";
        Object srcUser = "nacos";
        Object appNameTmp = "newAppName";
        Object desc = "description";
        Object use = "use";
        Object effect = "effect";
        Object type = "type";
        Object schema = "schema";
        String encryptedDataKey = "ey456789";
        context.putUpdateParameter(FieldConstant.CONTENT, newContent);


 flow counters among
		// flows that overlap with the active timeouts:
		// assign all counters to the first flow. Hence we do
		// not need to check whether the flow overlaps (i.e
		// flowStartTimeSeconds < bucket->inactiveExpireTime and flowEndSeconds > bucket->inactiveExpireTime)
		if (unix_now.tv_sec > bucket->inactiveExpireTime || unix_now.tv_sec > bucket->activeExpireTime){
			expiryforced = true;
			bucket->forceExpiry = true;
			removeBucket(bucket);
		} else {
			flowfound = true;
			aggregateFlow(bucket->data.get(), data.get(), false);
			bucket->inactiveExpireTime = unix_now.tv_sec + inactiveTimeout;
			if (bucket->activeExpireTime>bucket->inactiveExpireTime) {
				exportList.remove(bucket->listNode);
				exportList.push(bucket->listNode);
				removeBucket(bucket);
			}
		}
	}
	if (biflowAggregation && !flowfound && !expiryforced) {
		// try reverse flow
		uint32_t rhash = getHash(data.get(), true);
		DPRINTF_DEBUG( "rhash=%u", rhash);
		bucket = lookupBucket(rhash, data.get(), true, &prevbucket);
		if (bucket != NULL) {
			if (unix_now.tv_sec > bucket->inactiveExpireTime || unix_now.tv_sec > bucket->activeExpireTime) {
				bucket->forceExpiry = true;
				expiryforced = true;
				removeBucket(bucket);
			} else {
				flowfound = true;
				DPRINTF_DEBUG( "aggregating reverse flow");
				int must_reverse = aggregateFlow(bucket->data.get(), data.get(), true);
				if (must_reverse == 1) {
					DPRINTF_DEBUG( "reversing whole flow");
					// reverse flow
					//msg(LOG_ERR, "Reversing flow");
					reverseFlowBucket(bucket);
					// delete reference from hash table
					if (prevbucket==NULL)
						buckets[rhash] = bucket->next;
					else {
						prevbucket->next = bucket->next;
					}
					if (bucket->next!=NULL)
						bucket->next->prev = prevbucket;
					// insert into hash table again
					nhash = getHash(bucket->data.get(), false);
					DPRINTF_DEBUG( "nhash=%u", nhash);
					bucket->next = buckets[nhash];
					bucket->hash = nhash;
					buckets[nhash] = bucket;
					bucket->prev = 0;
					if (bucket->next != NULL) bucket->next->prev = bucket;
					bucket->inactiveExpireTime = unix_now.tv_sec + inactiveTimeout;
					if (bucket->activeExpireTime>bucket->inactiveExpireTime) {
						exportList.remove(bucket->listNode);
						exportList.push(bucket->listNode);
						removeBucket(bucket);
					}
				}
			}
		}
	}
	if (!flowfound || expiryforced) {
		DPRINTF_DEBUG( "creating new bucket");
		statTotalEntries++;
		HashtableBucket* n = buckets[nhash];
		buckets[nhash] = createBucket(data, 0, n, 0, nhash, unix_now.tv_sec); // FIXME: insert observationDomainID!
		buckets[nhash]->inTable = true;
		if (n != NULL) n->prev = buckets[nhash];
		BucketListElement* node = hbucketIM.getNewInstance();
		node->reset();
		buckets[nhash]->listNode = node;
		node->bucket = buckets[nhash];
		exportList.push(node);
	}
	atomic_release(&aggInProgress);
}

/**
 * Copies \c srcData to \c dstData applying \c modifier.
 * Takes care


0166FC0
/* 001F4 808AC334 8209017C */  lb      $t1, 0x017C($s0)           ## 0000017C
/* 001F8 808AC338 0C010D20 */  jal     DynaPolyInfo_SetActorMove

/* 001FC 808AC33C A209001E */  sb      $t1, 0x001E($s0)           ## 0000001E
/* 00200 808AC340 860A001C */  lh      $t2, 0x001C($s0)           ## 0000001C
/* 00204 808AC344 314B0007 */  andi    $t3, $t2, 0x0007           ## $t3 = 00000000
/* 00208 808AC348 2D610005 */  sltiu   $at, $t3, 0x0005
/* 0020C 808AC34C 1020003E */  beq     $at, $zero, .L808AC448
/* 00210 808AC350 000B5880 */  sll     $t3, $t3,  2
/* 00214 808AC354 3C01808B */  lui     $at, %hi(jtbl_808AC5A0)       ## $at = 808B0000
/* 00218 808AC358 002B0821 */  addu    $at, $at, $t3
/* 0021C 808AC35C 8C2BC5A0 */  lw      $t3, %lo(jtbl_808AC5A0)($at)
/* 00220 808AC360 01600008 */  jr      $t3
/* 00224 808AC364 00000000 */  nop
glabel L808AC368
/* 00228 808AC368 3C040600 */  lui     $a0, 0x0600                ## $a0 = 06000000
/* 0022C 808AC36C 24841A38 */  addiu   $a0, $a0, 0x1A38           ## $a0 = 06001A38
/* 00230 808AC370 0C010620 */  jal     DynaPolyInfo_Alloc

/* 00234 808AC374 27A50054 */  addiu   $a1, $sp, 0x0054           ## $a1 = FFFFFFFC
/* 00238 808AC378 02202025 */  or      $a0, $s1, $zero            ## $a0 = 00000000
/* 0023C 808AC37C 26250810 */  addiu   $a1, $s1, 0x0810           ## $a1 = 00000810
/* 00240 808AC380 02003025 */  or      $a2, $s0, $zero            ## $a2 = 00000000
/* 00244 808AC384 0C00FA9D */  jal     DynaPolyInfo_RegisterActor
              ## DynaPolyInfo_setActor
/* 00248 808AC388 8FA70054 */  lw      $a3, 0x0054($sp)
/* 0024C 808AC38C 1000002E */  beq     $zero, $zero, .L808AC448
/* 00250 808AC390 AE02014C */  sw      $v0, 0x014C($s0)           ## 0000014C
glabel L808AC394
/* 00254 808AC394 3C040600 */  lui     $a0, 0x0600                ## $a0 = 06000000
/* 00258 808AC398 24841C58 */  addiu   $a0, $a0, 0x1C58           ## $a0 = 06001C58
/* 0025C 808AC39C 0C010620 */  jal     DynaPolyInfo_Alloc

/* 00260 808AC3A0 27A50054 */  addiu   $a1, $sp, 0x0054           ## $a1 = FFFFFFFC
/* 00264 808AC3A4 02202025 */  or      $a0, $s1, $zero            ## $a0 = 00000000
/* 00


 bots using a simple, safe interface that should feel
//! comfortable to Rust developers.
//!
//! [RLBot]: https://github.com/RLBot/RLBot
//!
//! Most types in this crate are exported directly from RLBot, so for anything
//! not documented here, you'll need to use RLBot's docs as the authoritative
//! reference.
//!
//! There are two ways to use this crate:
//!
//! 1. [`run_bot`] and [`Bot`] – This is the **high-level** interface. It plays
//!    a single match from start to finish. It expects the app to have been
//!    launched by the RLBot framework, and runs its own game loop under
//!    framework control.
//! 2. [`init`](init()) and [`RLBot`] – This is the **low-level** interface. You
//!    can use this to directly access the innards of RLBot for scripting,
//!    integration tests, or any other custom use-case.
//!
//! ## Examples
//!
//! This crate comes with plenty examples to get you started. All the examples
//! can be run directly from the repo. Follow these steps to run an example:
//!
//! 1. Run Rocket League with the `-rlbot` flag. The flag causes Rocket League
//!    to start a local UDP server that lets RLBot control the game. It also
//!    disables the online features of the game.
//!
//!    ```sh
//!    Steam.exe -applaunch 252950 -rlbot
//!    ```
//!
//! 1. Run `RLBot.exe`, which is included as part of the Python `rlbot` package.
//!    This is a service process that helps bots communicate with the game.
//!
//! 1. Run the example (here we run the example called `simple`):
//!
//!    ```sh
//!    cargo run --example simple
//!    ```
//!
//! ### examples/simple ([Source][`examples/simple`])
//!
//! This is a simple ATBA, or **A**lways **T**owards **B**all **A**gent.
//!
//! Key APIs:
//!
//! * [`init`](init())
//! * [`RLBot::start_match`]
//! * [`Packeteer::next`]
//! * [`RLBot::update_player_input`]
//!
//! ### examples/simple_flatbuffer ([Source][`examples/simple_flatbuffer`])
//!
//! Another ATBA, but using the lower-level flatbuffer functions. All of the
//! low-level functions in RLBot's interface make use of flatbuffers.
//!
//! Key APIs:
//!
//! * [`Packeteer::next_flatbuffer`]
//! * [`RLBot::update_player_input_flatbuffer`]
//!
//! ### examples/rendering ([Source][`examples/rendering`])
//!
//! This example shows how to draw simple shapes to the game window. If you
//! don't see anything, try pressing PageUp, which is RLBot's shortcut for
//! turning on rendering.
//!
//! Key APIs:
//!
//! * [`RLBot::begin_render_group`]
//! * [`RenderGroup::render`]
//!
//! ### examples/gravity ([Source][`examples/gravity`])
//!
//! A fun example showing how to set game state.
//!
//! Key APIs:
//!
//! * [`RLBot::set_game_state_struct`]
//!
//! ### examples/gravity_flatbuffer ([Source][`examples/gravity_flatbuffer`])
//!
//! This works exactly the same as the previous example, except it uses the
//! low-level flatbuffer interface.
//!
//! Key APIs:
//!
//!


!(IVJudgment::Best > 30);
    }

    #[test]
    #[should_panic]
    fn test_invalid_iv_cmp() {
        assert!(IVJudgment::Decent < 33);
        assert!(IVJudgment::Best < 10000);
    }

    #[test]
    fn test_iv_filter() {
        let iv = SingleIVFilter::new_at_least(IVJudgment::PrettyGood);
        assert!(iv.test(&16));
        assert!(iv.test(&31));
        assert!(!iv.test(&9));
        assert!(!iv.test(&0));

        let iv = SingleIVFilter::new_at_most(IVJudgment::NoGood);
        assert!(iv.test(&0));
        assert!(!iv.test(&1));
        assert!(!iv.test(&31));
    }

    #[test]
    fn test_shiny_filter() {
        assert!(ShinyFilter::Shiny.test(&Shininess::Square));
        assert!(ShinyFilter::Shiny.test(&Shininess::Star));
        assert!(!ShinyFilter::Shiny.test(&Shininess::None));

        assert!(ShinyFilter::Square.test(&Shininess::Square));
        assert!(!ShinyFilter::Square.test(&Shininess::Star));
        assert!(!ShinyFilter::Square.test(&Shininess::None));
    }

    #[test]
    fn test_ability_filter() {
        assert!(AbilityFilter::First.test(&Ability::First));
        assert!(!AbilityFilter::First.test(&Ability::Second));
        assert!(!AbilityFilter::First.test(&Ability::Hidden));
    }

    #[test]
    fn test_gender_filter() {
        assert!(GenderFilter::Male.test(&Gender::Male));
        assert!(!GenderFilter::Male.test(&Gender::Female));
        assert!(!GenderFilter::Male.test(&Gender::Genderless));
    }

    #[test]
    fn test_nature_filter() {
        assert!(
            NatureFilter::from_natures(vec![Nature::Hardy, Nature::Timid, Nature::Relaxed,])
                .test(&Nature::Timid)
        );
        assert!(!NatureFilter::from_natures(vec![Nature::Hardy]).test(&Nature::Timid));
    }

    #[test]
    fn test_nature_disallows_all_by_default() {
        assert!(!NatureFilter::from_vec(Vec::new()).test(&Nature::Timid));
        assert!(!NatureFilter::new().test(&Nature::Timid));
    }

    #[test]
    fn test_valid_frame_filter() {
        let natures = NatureFilter::from_natures(vec![Nature::Timid, Nature::Bold]);

        let f = FrameFilter::new()
            .set_ability(AbilityFilter::Second)
            .set_gender(GenderFilter::Male)
            .set_shiny(ShinyFilter::Square)
            .set_ivs(
                None,
                Some(SingleIVFilter::new_at_most(IVJudgment::Decent)),
                None,
                None,
                None,
                Some(SingleIVFilter::new_at_least(IVJudgment::Best)),
            )
            .set_nature(natures);

        assert_eq!(
            f,
            FrameFilter {
                shiny: Some(ShinyFilter::Square),
                ivs: Some(IVFilter(
                    None,
                    Some(SingleIVFilter {
                        direction: RangeDirection::AtMost,
                        judgment: IVJudgment::Decent
                    }),
                    None,
                    None,
                    None,