 [1, 2, 4]);
      expect(() => interpreter.invoke(), throwsA(isStateError));
    });

    test('invoke succeeds if allocated', () {
      interpreter.allocateTensors();
      interpreter.invoke();
    });

    test('get input tensors', () {
      expect(interpreter.getInputTensors(), hasLength(1));
    });

    test('get output tensors', () {
      expect(interpreter.getOutputTensors(), hasLength(1));
    });

    test('get output tensors', () {
      expect(interpreter.getOutputTensors(), hasLength(1));
    });

    test('resize input tensor', () {
      interpreter.resizeInputTensor(0, [2, 3, 5]);
      expect(interpreter.getInputTensors().single.shape, [2, 3, 5]);
    });

    group('tensors', () {
      List<tfl.Tensor> tensors;
      setUp(() => tensors = interpreter.getInputTensors());

      test('name', () {
        expect(tensors[0].name, 'input');
      });

      test('type', () {
        expect(tensors[0].type, tfl.TfLiteType.uint8);
      });

      test('shape', () {
        expect(tensors[0].shape, [1, 4]);
      });

      group('data', () {
        test('get throws if not allocated', () {
          expect(() => tensors[0].data, throwsA(isStateError));
        });

        test('get', () {
          interpreter.allocateTensors();
          expect(tensors[0].data, hasLength(4));
        });

        test('set throws if not allocated', () {
          expect(() => tensors[0].data = Uint8List.fromList(const [0, 0, 0, 0]),
              throwsA(isStateError));
        });

        test('set', () {
          interpreter.allocateTensors();
          tensors[0].data = Uint8List.fromList(const [0, 0, 0, 0]);
          expect(tensors[0].data, [0, 0, 0, 0]);
          tensors[0].data = Uint8List.fromList(const [0, 1, 10, 100]);
          expect(tensors[0].data, [0, 1, 10, 100]);
        });

        test('copyTo', () {
          interpreter.allocateTensors();
          expect(tensors[0].copyTo(), hasLength(4));
        });

        test('copyFrom throws if not allocated', () {
          expect(
              () => tensors[0].copyFrom(Uint8List.fromList(const [0, 0, 0, 0])),
              throwsA(isStateError));
        }, skip: 'segmentation fault!');
        // TODO(shanehop): Prevent data access for unallocated tensors.

        test('copyFrom', () {
          interpreter.allocateTensors();
          tensors[0].copyFrom(Uint8List.fromList(const [0, 0, 0, 0]));
          expect(tensors[0].data, [0, 0, 0, 0]);
          tensors[0].copyFrom(Uint8List.fromList(const [0, 1, 10, 100]));
          expect(tensors[0].data, [0, 1, 10, 100]);
        });
      });
    });
  });
}
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:ffi';

import 'bindings/interpreter_options.dart';
import 'bindings/types.dart';
import 'check.dart';

/// TensorFlowLite interpreter options.
class InterpreterOptions {
  final Pointer<TfLiteInterpreterOptions> _options;
  bool _deleted = false;

  Pointer<TfLiteInterpreterOptions> get base => _options;

  InterpreterOptions._(this._options);

  /// Creates a new options instance.
  factory InterpreterOptions() =>
      InterpreterOptions._(TfLiteInterpreterOptionsCreate());

  /// Destroys the options instance.
  void delete() {
    checkState(!_deleted, message: 'InterpreterOptions


o-tstyle-diagonal-down:none;
	mso-tstyle-diagonal-up:none;
	color:white;
	mso-ansi-font-weight:bold;
	mso-bidi-font-weight:bold;}
table.Estilo1LastRow
	{mso-style-name:Estilo1;
	mso-table-condition:last-row;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"Tabela com grade 8";
	mso-tstyle-diagonal-down:none;
	mso-tstyle-diagonal-up:none;
	color:windowtext;
	mso-ansi-font-weight:bold;
	mso-bidi-font-weight:bold;}
table.Estilo1LastCol
	{mso-style-name:Estilo1;
	mso-table-condition:last-column;
	mso-style-priority:99;
	mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"Tabela com grade 8";
	mso-tstyle-diagonal-down:none;
	mso-tstyle-diagonal-up:none;
	color:windowtext;
	mso-ansi-font-weight:bold;
	mso-bidi-font-weight:bold;}
table.ListaClara-nfase11
	{mso-style-name:"Lista Clara - Ênfase 11";
	mso-tstyle-rowband-size:1;
	mso-tstyle-colband-size:1;
	mso-style-priority:61;
	mso-style-unhide:no;
	border:solid #4F81BD 1.0pt;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-font-family:Calibri;
	mso-bidi-font-family:"Times New Roman";}
table.ListaClara-nfase11FirstRow
	{mso-style-name:"Lista Clara - Ênfase 11";
	mso-table-condition:first-row;
	mso-style-priority:61;
	mso-style-unhide:no;
	mso-tstyle-shading:#4F81BD;
	mso-para-margin-top:0cm;
	mso-para-margin-bottom:0cm;
	mso-para-margin-bottom:.0001pt;
	line-height:normal;
	color:white;
	mso-ansi-font-weight:bold;
	mso-bidi-font-weight:bold;}
table.ListaClara-nfase11LastRow
	{mso-style-name:"Lista Clara - Ênfase 11";
	mso-table-condition:last-row;
	mso-style-priority:61;
	mso-style-unhide:no;
	mso-tstyle-border-top:2.25pt double #4F81BD;
	mso-tstyle-border-left:1.0pt solid #4F81BD;
	mso-tstyle-border-bottom:1.0pt solid #4F81BD;
	mso-tstyle-border-right:1.0pt solid #4F81BD;
	mso-para-margin-top:0cm;
	mso-para-margin-bottom:0cm;
	mso-para-margin-bottom:.0001pt;
	line-height:normal;
	mso-ansi-font-weight:bold;
	mso-bidi-font-weight:bold;}
table.ListaClara-nfase11FirstCol


empezó a trabajar con el nuevo flujo de autenticación, querían que estuviera en todas partes. Finalmente, nuestro equipo de seguridad nos obligó a migrar nuestras aplicaciones a Access, pero durante mucho tiempo fue algo completamente orgánico, pues los equipos estaban deseando utilizarlo.

Con la autenticación en nuestro perímetro de la red, pudimos dar soporte a una plantilla distribuida por todo el mundo sin la latencia de una VPN, y pudimos hacerlo de forma segura. Además, nuestro equipo está comprometido a proteger nuestras aplicaciones internas con los mecanismos de autenticación más seguros y más fáciles de usar, y la autenticación en dos fases es uno de los controles de seguridad más importantes que se pueden implementar. Con Cloudflare Access, podemos confiar en los sólidos mecanismos de autenticación en dos fases de nuestro proveedor de identidad.

No todos los segundos factores de autenticación ofrecen el mismo nivel de seguridad. Algunos métodos siguen siendo vulnerables a los ataques de tipo "Man in the middle" (MITM). Estos ataques suelen consistir en agentes maliciosos que roban las contraseñas de un solo uso, normalmente a través de tácticas de phishing, para acceder a recursos privados. Para acabar con esa posibilidad, implementamos claves de seguridad compatibles con FIDO2. FIDO2 es un protocolo de autenticación diseñado para prevenir el phishing, y lo consideramos en ese momento como una mejora de nuestra dependencia de los tokens de software.

Aunque la implementación FIDO2 puede dar problemas de compatibilidad, nos encantó la idea de mejorar nuestra postura de seguridad. Cloudflare Access nos permitió limitar el acceso a nuestros sistemas solo a FIDO2. Ahora los usuarios de Cloudflare deben utilizar sus claves de hardware para acceder a nuestras aplicaciones. La incorporación de Access no solo fue un gran avance en lo relativo a la facilidad de uso, sino que la aplicación de las claves de seguridad supuso una enorme mejora de nuestra postura de seguridad.

Mitigar las amenazas y evitar la exfiltración de datos: Gateway y aislamiento remoto del navegador

Implementar un DNS seguro en nuestras oficinas

Unos años más tarde, en 2020, los equipos de seguridad de muchos clientes tenían problemas para ampliar los controles que habían habilitado en la oficina a sus trabajadores remotos. En respuesta, lanzamos Cloudflare Gateway, que ofrece a los clientes protección contra malware, ransomware, phishing, comando y control, Shadow IT y otros riesgos de Internet en todos los puertos y protocolos. Gateway dirige y filtra el tráfico en función de las políticas implementadas por el cliente.

Nuestro equipo de seguridad empezó con Gateway para implementar el filtrado de DNS en todas nuestras oficinas. Ya que Gateway fue creado sobre la misma red que 1.1.1.1, el solucionador de DNS más rápido del mundo, cualquier oficina


f;
  text-decoration: none;
  color: white;
}
.member-twitter--wrapper .member-twitter--header .twitter-follow-btn:hover .icon-twitter {
  color: white;
}
.member-twitter--wrapper .member-twitter--header .twitter-follow-btn:active {
  background-color: #6db33f;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
  border: none;
  padding: 8px 11px;
}
.member-twitter--wrapper .member-twitter--body {
  padding: 0 20px;
}
/*!
 * Datepicker for Bootstrap
 *
 * Copyright 2012 Stefan Petre
 * Licensed under the Apache License v2.0
 * https://www.apache.org/licenses/LICENSE-2.0
 *
 */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-datetimepicker-widget{top:0;left:0;width:250px;padding:4px;margin-top:1px;z-index:3000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.bootstrap-datetimepicker-widget:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);position:absolute;top:-7px;left:6px}.bootstrap-datetimepicker-widget:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:7px}.bootstrap-datetimepicker-widget.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget>ul{list-style-type:none;margin:0}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:100%;font-weight:bold;font-size:1.2em}.bootstrap-datetimepicker-widget table[data-hour-format="12"] .separator{width:4px;padding:0;margin:0}.bootstrap-datetimepicker-widget .datepicker>div{display:none}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#999}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{color:#fff;background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(


#pragma once

#include "mc/_HeaderOutputPredefine.h"

// auto generated forward declare list
// clang-format off
class ItemDescriptor;
// clang-format on

struct SpawnActorParameters {
public:
    // member variables
    // NOLINTBEGIN
    ::ll::UntypedStorage<4, 4>   mUnk40f98c;
    ::ll::UntypedStorage<4, 4>   mUnk55c489;
    ::ll::UntypedStorage<4, 4>   mUnk472480;
    ::ll::UntypedStorage<8, 16>  mUnkca10e7;
    ::ll::UntypedStorage<8, 32>  mUnk1d468a;
    ::ll::UntypedStorage<8, 32>  mUnkee7547;
    ::ll::UntypedStorage<8, 104> mUnk5dad47;
    ::ll::UntypedStorage<8, 64>  mUnk12c523;
    ::ll::UntypedStorage<1, 1>   mUnkd61ee6;
    ::ll::UntypedStorage<1, 1>   mUnk1b80b3;
    ::ll::UntypedStorage<4, 4>   mUnkc5692c;
    // NOLINTEND

public:
    // prevent constructor by default
    SpawnActorParameters& operator=(SpawnActorParameters const&);

public:
    // member functions
    // NOLINTBEGIN
    MCNAPI SpawnActorParameters();

    MCNAPI SpawnActorParameters(::SpawnActorParameters const&);

    MCNAPI SpawnActorParameters(::SpawnActorParameters&&);

    MCNAPI void setItem(::ItemDescriptor const& itemDescriptor);

    MCNAPI void setSpawnEntity(::std::string const& name);

    MCNAPI void setSpawnEvent(::std::string const& name);

    MCNAPI void setSpawnSound(::std::string const& name);

    MCNAPI void setSpawnTimeMax(int const& value);

    MCNAPI void setSpawnTimeMin(int const& value);

    MCNAPI ~SpawnActorParameters();
    // NOLINTEND

public:
    // constructor thunks
    // NOLINTBEGIN
    MCNAPI void* $ctor();

    MCNAPI void* $ctor(::SpawnActorParameters const&);

    MCNAPI void* $ctor(::SpawnActorParameters&&);
    // NOLINTEND

public:
    // destructor thunk
    // NOLINTBEGIN
    MCNAPI void $dtor();
    // NOLINTEND
};


 at
 * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.
 * In case of changes by gematik GmbH find details in the "Readme" file.
 *
 * See the Licence for the specific language governing permissions and limitations under the Licence.
 *
 * *******
 *
 * For additional notes and disclaimer from gematik and in case of changes by gematik find details in the "Readme" file.
 */

package de.gematik.ti.erp.app.database.api

interface TaskLocalDataSource {
    // to follow
}
/*
 * Copyright (Change Date see Readme), gematik GmbH
 *
 * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the
 * European Commission – subsequent versions of the EUPL (the "Licence").
 * You may not use this work except in compliance with the Licence.
 *
 * You find a copy of the Licence in the "Licence" file or at
 * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.
 * In case of changes by gematik GmbH find details in the "Readme" file.
 *
 * See the Licence for the specific language governing permissions and limitations under the Licence.
 *
 * *******
 *
 * For additional notes and disclaimer from gematik and in case of changes by gematik find details in the "Readme" file.
 */

@file:Suppress("MagicNumber")

package de.gematik.ti.erp.app.database.realm.schema

import io.realm.kotlin.MutableRealm
import io.realm.kotlin.Realm
import io.realm.kotlin.RealmConfiguration
import io.realm.kotlin.ext.query
import io.realm.kotlin.types.RealmObject
import kotlin.reflect.KClass

class AppRealmSchema(
    val version: Long,
    val classes: Set<KClass<out RealmObject>>,
    val migrateOrInitialize: (MutableRealm.(migrationStartedFrom: Long) -> Unit)? = null
) {
    override fun equals(other: Any?): Boolean {
        return (other as? AppRealmSchema)?.version == version
    }

    override fun hashCode(): Int {
        return version.hashCode()
    }
}

class LatestManualMigration : RealmObject {
    var version: Long = -1
}

typealias RealmSharedConfigBuilder = RealmConfiguration.Builder

fun openRealmWith(
    schemas: Set<AppRealmSchema>,
    configuration: ((RealmSharedConfigBuilder) -> RealmSharedConfigBuilder)? = null
): Realm {
    val latestSchema = requireNotNull(schemas.maxByOrNull { it.version }) { "At least one schema is required!" }

    return Realm.open(
        RealmConfiguration.Builder(latestSchema.classes + LatestManualMigration::class)
            .schemaVersion(latestSchema.version)
            .let {
                configuration?.invoke(it) ?: it
            }
            .build()
    ).also { realm ->
        val latestManualMigration = realm.query<LatestManualMigration>().first().find() ?: run {
            realm.writeBlocking {
                copyToRealm(
                    LatestManualMigration().apply {
                        version = -1
                    }
                )
            }
        }

        val migrationStartedFrom = latestManualMigration.version

        schemas.


电视剧-穿越" to "0,1,4,139",
    "电视剧-宫廷" to "0,1,4,140",
    "电视剧-神话" to "0,1,4,147",
    "电视剧-商战" to "0,1,4,148",
    "电视剧-警匪" to "0,1,4,149",
    "电视剧-动作" to "0,1,4,150",
    "电视剧-惊悚" to "0,1,4,151",
    "电视剧-剧情" to "0,1,4,152",
    "电视剧-同性" to "0,1,4,153",
    "电视剧-奇幻" to "0,1,4,154",
    "综艺-真人秀" to "0,1,5,39",
    "综艺-选秀" to "0,1,5,38",
    "综艺-网综" to "0,1,5,94",
    "综艺-脱口秀" to "0,1,5,43",
    "综艺-搞笑" to "0,1,5,40",
    "综艺-竞技" to "0,1,5,91",
    "综艺-情感" to "0,1,5,33",
    "综艺-访谈" to "0,1,5,34",
    "综艺-演唱会" to "0,1,5,44",
    "综艺-晚会" to "0,1,5,92",
    "综艺-其它" to "0,1,5,45",
    "体育-奥运" to "0,1,95,99",
    "体育-综合" to "0,1,95,98",
    "体育-篮球" to "0,1,95,97",
    "体育-足球" to "0,1,95,96",
    "纪录片-文化" to "0,1,7,50",
    "纪录片-探索" to "0,1,7,59",
    "纪录片-军事" to "0,1,7,60",
    "纪录片-解密" to "0,1,7,61",
    "纪录片-科技" to "0,1,7,62",
    "纪录片-历史" to "0,1,7,63",
    "纪录片-人物" to "0,1,7,64",
    "纪录片-自然" to "0,1,7,66",
    "纪录片-其它" to "0,1,7,67",
)
private val DEFAULT_REGIONS = listOf(
    "全部地区" to "",
    "大陆" to "大陆",
    "香港" to "香港",
    "台湾" to "台湾",
    "日本" to "日本",
    "韩国" to "韩国",
    "欧美" to "欧美",
    "英国" to "英国",
    "泰国" to "泰国",
    "其它" to "其它",
)
private val DEFAULT_LANG = listOf(
    "全部语言" to "",
    "国语" to "国语",
    "粤语" to "粤语",
    "英语" to "英语",
    "韩语" to "韩语",
    "日语" to "日语",
    "西班牙语" to "西班牙语",
    "法语" to "法语",
    "德语" to "德语",
    "意大利语" to "意大利语",
    "泰国语" to "泰国语",
    "其它" to "其它",
)
private val DEFAULT_YEAR = listOf(
    "全部年份" to "",
    "今年" to "今年",
    "去年" to "去年",
    "更早" to "更早",
    "90年代" to "90年代",
    "80年代" to "80年代",
    "怀旧" to "怀旧",
)
private val DEFAULT_STATUS = listOf(
    "全部" to "-1",
    "全集" to "0",
    "连载中" to "1",
)
private val DEFAULT_QUALITY = listOf(
    "全部画质" to "",
    "4K" to "4K",
    "1080P" to "1080P",
    "900P" to "900P",
    "720P" to "720P",
)
private val DEFAULT_SORT = listOf(
    "添加时间" to "0",
    "更新时间" to "1",
    "人气高低" to "2",
    "评分高低" to "3",
)
//endregion
/** The following file is slig


Model = ExpressionHelper.CreateQueryModel<Cook> ();
      var orderByClause = new OrderByClause ();
      orderByClause.Orderings.Add (new Ordering (Expression.Constant (0), OrderingDirection.Asc));
      queryModel.BodyClauses.Add (orderByClause);
      var clause = new AdditionalFromClause ("x", typeof (Cook), new SubQueryExpression (queryModel));
      _visitor.VisitAdditionalFromClause (clause, _queryModel, 0);
    }

    [Test]
    public void VisitMainFromClause_AlsoFlattens ()
    {
      var mainFromSubQuery = from sd in _detailSource
                             where sd.Name == "Maths"
                             select sd.Cook;
      var parsedMainFromSubQuery = ExpressionHelper.ParseQuery (mainFromSubQuery);

      var query = from s in ExpressionHelper.CreateQueryable<Cook>()
                  select s.FirstName;
      var parsedQuery = ExpressionHelper.ParseQuery (query);
      parsedQuery.MainFromClause.FromExpression = new SubQueryExpression (parsedMainFromSubQuery);

      parsedQuery.Accept (_visitor);

      var expectedSelector = ExpressionHelper.Resolve<Kitchen, string> (parsedQuery.MainFromClause, sd => sd.Cook.FirstName);

      Assert.That (parsedQuery.MainFromClause.FromExpression, Is.Not.InstanceOf (typeof (SubQueryExpression)));
      Assert.That (parsedQuery.BodyClauses.Count, Is.EqualTo (1));
      ExpressionTreeComparer.CheckAreEqualTrees (expectedSelector, parsedQuery.SelectClause.Selector);
    }

    [Test]
    public void IntegrationTest_TransformedQueryModel ()
    {
      var query = from s1 in ExpressionHelper.CreateQueryable<Cook> ()
                  from sd in
                    (from sector in _sectorSource
                     where sector.ID > 10


、value、children 的字段 | object | { label: `label`, value: `value`, children: `children` } | 4.17.0 |
| filterTreeNode | 是否根据输入项进行筛选，默认用 treeNodeFilterProp 的值作为要筛选的 TreeNode 的属性值 | boolean \| function(inputValue: string, treeNode: TreeNode) (函数需要返回 bool 值) | function | - |
| getPopupContainer | 菜单渲染父节点。默认渲染到 body 上，如果你遇到菜单滚动定位问题，试试修改为滚动的区域，并相对其定位。[示例](https://codepen.io/afc163/pen/zEjNOy?editors=0010) | function(triggerNode) | () => document.body | - |
| labelInValue | 是否把每个选项的 label 包装到 value 中，会把 value 类型从 `string` 变为 {value: string, label: ReactNode, halfChecked(treeCheckStrictly 时有效): string\[] } 的格式 | boolean | false | - |
| listHeight | 设置弹窗滚动高度 | number | 256 | - |
| loadData | 异步加载数据。在过滤时不会调用以防止网络堵塞，可参考 FAQ 获得更多内容 | function(node) | - | - |
| maxTagCount | 最多显示多少个 tag，响应式模式会对性能产生损耗 | number \| `responsive` | - | responsive: 4.10 |
| maxTagPlaceholder | 隐藏 tag 时显示的内容 | ReactNode \| function(omittedValues) | - | - |
| maxTagTextLength | 最大显示的 tag 文本长度 | number | - | - |
| multiple | 支持多选（当设置 treeCheckable 时自动变为 true） | boolean | false | - |
| notFoundContent | 当下拉列表为空时显示的内容 | ReactNode | `Not Found` | - |
| placeholder | 选择框默认文字 | string | - | - |
| placement | 选择框弹出的位置 | `bottomLeft` `bottomRight` `topLeft` `topRight` | bottomLeft | - |
| prefix | 自定义前缀 | ReactNode | - | 5.22.0 |
| searchValue | 搜索框的值，可以通过 `onSearch` 获取用户输入 | string | - | - |
| showCheckedStrategy | 配置 `treeCheckable` 时，定义选中项回填的方式。`TreeSelect.SHOW_ALL`: 显示所有选中节点(包括父节点)。`TreeSelect.SHOW_PARENT`: 只显示父节点(当父节点下所有子节点都选中时)。 默认只显示子节点 | `TreeSelect.SHOW_ALL` \| `TreeSelect.SHOW_PARENT` \| `TreeSelect.SHOW_CHILD` | `TreeSelect.SHOW_CHILD` | - |
| showSearch | 是否支持搜索框 | boolean | 单选：false \| 多选：true | - |
| size | 选择框大小 | `large` \| `middle` \| `small` | - | - |
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
| suffixIcon | 自定义的选择框后缀图标 | ReactNode | `<DownOutlined />` | - |
| switcherIcon | 自定义树节点的展开/折叠图标 | ReactNode \| ((pr


[12637] = {"擦身而過", nil, {"黯黑守望的史戴芬要你把無息頸飾交給血玫·達圖拉。"}},
[12638] = {"迫近的呼喚", nil, {"黯黑守望的史戴芬要你把苦痛糾結頸飾交給血玫·達圖拉。"}},
[12639] = {"冰凍土元素", nil, {"辛托加的元素馴伏者達茍答要你收集7個冰凍土元素精華。"}},
[12640] = {"封閉裂隙", nil, {"辛托加的割顱者艾胡奈要你封閉7個元素裂隙。"}},
[12641] = {"死亡從天而降", nil, {"巫妖王命令你利用亞榭洛之眼分析血色堡、新亞法隆熔爐、新亞法隆市政廳，以及赤紅之焰禮拜堂。\n\n使用亞榭洛之眼控制裝置來控制亞榭洛之眼。"}},
[12642] = {"魯諾克之靈", nil, {"在魯諾克祭壇與魯諾克之靈交談。"}},
[12643] = {"銀內襯", nil, {"黯黑守望的史戴芬要你前往苦楚聖匣，從惡臭的憎惡體身上收集5個惡臭的憎惡體內臟，以及收集5份黏稠的食屍鬼唾液。"}},
[12644] = {"靜置", nil, {"成功完成蒸餾流程，然後把做好的雷酒的叢林調酒交給奈辛瓦里營地的葛林布茲·雷酒。"}},
[12645] = {"試喝", nil, {"把雷酒的叢林調酒樣品交給赫米特·奈辛瓦里，海德里厄斯·哈羅威，以及塔瑪拉·顛鏈，然後回到奈辛瓦里營地向葛林布茲·雷酒回報。"}},
[12646] = {"我的預言者，我的敵人", nil, {"魯諾克祭壇的魯諾克之靈要你取得他的寒地熊神魔精。"}},
[12647] = {"苦難的盡頭", nil, {"魯諾克之靈要你用折磨者薰香喚醒他的身體。然後你要用他的靈魂灌注給你的力量殺死魯諾克。\n\n如果你失去了魯諾克的魔精光環，你可以回去找魯諾克之靈重新獲取它。"}},
[12648] = {"裝扮", nil, {"黯黑守望的史戴芬要你使用蠱惑頸飾披上天譴偽裝。\n\n當你變成天譴軍的


38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4l79.1 0c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zM422.4 344.3c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zM378.8 120.4l0 168.3-73.5 0-32.7 55.5-6.5 0c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1l-91 0c-25.5 0-110.8-26.8-107-114l0-213.3c0-16 9.7-16.6 15-16.8l82 0c.2 0 .3 .1 .5 .1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7l84.2 0C361-.2 378.8 79.6 378.8 120.4zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"],resolving:[512,512,[],"f3e7","M289.2 278.2c46-13.3 49.6-23.5 44-43.4L322 195.5c-6.1-20.9-18.4-28.1-71.1-12.8l-188.2 54.1 28.6 98.6 197.9-57.2zM256.5 8C139.4 8 41.2 88.7 15.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2l-92.6 26.6 220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2C166 491.3 209.5 504 255.5 504 392.5 504 504 392.6 504 255.7 505 119.4 393.5 8 256.5 8zM46.3 388.6L8 256.8c0 48.5 14.3 93.4 38.3 131.8z"],blackberry:[512,512,[],"f37b","M166 116.9c0 23.4-16.4 49.1-72.5 49.1l-70.1 0 21-88.8 67.8 0c42.1 0 53.8 23.3 53.8 39.7zM292.2 77.2l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1l-67.8 0-21 88.8 70.1 0c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8l


tBar.SetActive(true);
            }
        }
        else if (ttype == TooltipType.Equipment)
        {
            btn_unEquip.SetActive(true);
        }
    }

    public void deactivateTooltip()             //deactivating the tooltip after you went out of a slot
    {
        this.transform.gameObject.SetActive(false);
    }
    public void equipTooltip()
    {

    }

    public void dropItem()
    {
        KBEngine.Avatar p = (KBEngine.Avatar)KBEngineApp.app.player();
        if (p != null)
        {
            p.dropRequest(item.itemUUID);
            deactivateTooltip();
        }
    }
    public void equipItem()
    {
        if (eS == null)
            eS = UnityEngine.GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerInventory>().characterSystem.GetComponent<EquipmentSystem>();
        //验证是否可以装备
        if (eS != null)
        {
            for (int i = 0; i < eS.slotsInTotal; i++)
            {
                if (eS.itemTypeOfSlots[i].Equals(item.itemType))
                {
                    //if (eS.transform.GetChild(1).GetChild(i).childCount == 0)
                    //{
                    //    this.gameObject.transform.SetParent(eS.transform.GetChild(1).GetChild(i));
                    //    this.gameObject.GetComponent<RectTransform>().localPosition = Vector3.zero;
                    //    eS.gameObject.GetComponent<Inventory>().updateItemList();
                    //    inventory.updateItemList();
                    //    inventory.EquiptItem(item);
                    //    gearable = true;
                    //    if (duplication != null)
                    //        Destroy(duplication.gameObject);
                    //    break;
                    //}
                    KBEngine.Avatar p = (KBEngine.Avatar)KBEngineApp.app.player();
                    if (p != null)
                    {
                        p.equipItemRequest(item.itemIndex, i);
                        deactivateTooltip();
                    }
                    break;
                }
            }
        }
    }

    public void unEquipItem()
    {
        if (inventory == null)
            inventory = UnityEngine.GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerInventory>().inventory.GetComponent<Inventory>();
        int emptyIndex = inventory.getFirstEmptyItemIndex();
        if (emptyIndex >= 0)
        {
            KBEngine.Avatar p = (KBEngine.Avatar)KBEngineApp.app.player();
            if (p != null)
            {
                p.equipItemRequest(emptyIndex, item.itemIndex);
                deactivateTooltip();
            }
        }
    }

    public void useItem()
    {
        KBEngine.Avatar p = (KBEngine.Avatar)KBEngineApp.app.player();
        if (p != null)
        {
            p.useItemRequest(item.itemIndex);
            deactivateTooltip();
        }
    }

    public void hotBarItem()
    {
        HotBarProcess._instance.upItem(item.itemID);
    }

}


);

			}
		}
		for (int j = -2; j < 3; j += 1){
			for (int k = -2; k < 3; k += 1){
				if (boundaryCheck(row+j,col+8,z+k))
					GC.add(cells[row+j][col+8][z+k]);

			}
		}
		for (int j = -2; j < 3; j += 1){
			for (int k = -2; k < 3; k += 1){
				if (boundaryCheck(row+j,col-8,z+k))
					GC.add(cells[row+j][col-8][z+k]);

			}
		}
		for (int j = -2; j < 3; j += 1){
			for (int k = -2; k < 3; k += 1){
				if (boundaryCheck(row+j,col+k,z+8))
					GC.add(cells[row+j][col+k][z+8]);

			}
		}
		for (int j = -2; j < 3; j += 1){
			for (int k = -2; k < 3; k += 1){
				if (boundaryCheck(row+j,col+k,z-8))
					GC.add(cells[row+j][col+k][z-8]);

			}
		}
		//

		for (int j = -1; j < 2; j += 1){
			for (int k = -1; k < 2; k += 1){
				if (boundaryCheck(row+9,col+j,z+k)){
					GC.add(cells[row+9][col+j][z+k]);

				}
			}
		}
		for (int j = -1; j < 2; j += 1){
			for (int k = -1; k < 2; k += 1){
				if (boundaryCheck(row-9,col+j,z+k))
					GC.add(cells[row-9][col+j][z+k]);

			}
		}
		for (int j = -1; j < 2; j += 1){
			for (int k = -1; k < 2; k += 1){
				if (boundaryCheck(row+j,col+9,z+k))
					GC.add(cells[row+j][col+9][z+k]);

			}
		}
		for (int j = -1; j < 2; j += 1){
			for (int k = -1; k < 2; k += 1){
				if (boundaryCheck(row+j,col-9,z+k))
					GC.add(cells[row+j][col-9][z+k]);

			}
		}
		for (int j = -1; j < 2; j += 1){
			for (int k = -1; k < 2; k += 1){
				if (boundaryCheck(row+j,col+k,z+9))
					GC.add(cells[row+j][col+k][z+9]);

			}
		}
		for (int j = -1; j < 2; j += 1){
			for (int k = -1; k < 2; k += 1){
				if (boundaryCheck(row+j,col+k,z-9))
					GC.add(cells[row+j][col+k][z-9]);

			}
		}
			//GC.add(cells[row][col][z]);//修改邻居网格的条件！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！
			/***********************************************************************/
			return GC;
		}

		public boolean boundaryCheck(int i, int j, int k){
			if (i<0 || j<0 || k<0)
				return false;
			if (i > rows+1 || j > cols+1 || k > zs+1){
				return false;
			}
			return true;
		}

		public boolean isHostsListEmpty(){
			return this.hosts.


rider as a struct that implements the Overrider interface
*/
package overridemanager

import (
	"fmt"
	"strings"

	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
	"k8s.io/apimachinery/pkg/util/sets"
	"k8s.io/klog/v2"

	"github.com/kubeedge/api/apis/apps/v1alpha1"
)

type CommandOverrider struct{}

func (o *CommandOverrider) ApplyOverrides(rawObj *unstructured.Unstructured, overriders OverriderInfo) error {
	commandOverriders := overriders.Overriders.CommandOverriders
	for index := range commandOverriders {
		patches, err := buildCommandArgsPatches(CommandString, rawObj, &commandOverriders[index])
		if err != nil {
			return err
		}

		klog.V(4).Infof("Parsed JSON patches by commandOverriders(%+v): %+v", commandOverriders[index], patches)
		if err = applyJSONPatch(rawObj, patches); err != nil {
			return err
		}
	}

	return nil
}

// buildCommandArgsPatches build JSON patches for the resource object according to override declaration.
func buildCommandArgsPatches(target string, rawObj *unstructured.Unstructured, commandRunOverrider *v1alpha1.CommandArgsOverrider) ([]overrideOption, error) {
	switch rawObj.GetKind() {
	case PodKind:
		return buildCommandArgsPatchesWithPath(target, "spec/containers", rawObj, commandRunOverrider)
	case ReplicaSetKind:
		fallthrough
	case DeploymentKind:
		fallthrough
	case DaemonSetKind:
		fallthrough
	case JobKind:
		fallthrough
	case StatefulSetKind:
		return buildCommandArgsPatchesWithPath(target, "spec/template/spec/containers", rawObj, commandRunOverrider)
	}
	return nil, nil
}

func buildCommandArgsPatchesWithPath(target string, specContainersPath string, rawObj *unstructured.Unstructured, commandRunOverrider *v1alpha1.CommandArgsOverrider) ([]overrideOption, error) {
	patches := make([]overrideOption, 0)
	containers, ok, err := unstructured.NestedSlice(rawObj.Object, strings.Split(specContainersPath, pathSplit)...)
	if err != nil {
		return nil, fmt.Errorf("failed to retrieves path(%s) from rawObj, error: %v", specContainersPath, err)
	}
	if !ok || len(containers) == 0 {
		return nil, nil
	}
	klog.V(4).Infof("buildCommandArgsPatchesWithPath containers info (%+v)", containers)
	for index, container := range containers {
		if container.(map[string]interface{})["name"] == commandRunOverrider.ContainerName {
			commandArgsPath := fmt.Sprintf("/%s/%d/%s", specContainersPath, index, target)
			commandArgsValue := make([]string, 0)
			var patch overrideOption
			// if target is nil, to add new [target]
			if container.(map[string]interface{})[target] == nil {
				patch, _ = acquireAddOverrideOption(commandArgsPath, commandRunOverrider)
			} else {
				for _, val := range container.(map[string]interface{})[target].([]interface{}) {
					commandArgsValue = append(commandArgsValue, fmt.Sprintf("%s", val))
				}
				patch, _ = acquireReplaceOverrideOption(commandArgsPath, commandArgsValue, commandRunOverrider)
			}

			klog.V(4).Infof("[buildCommandArgsPatchesWithPath] containers patch info (%+v)", patch)
			patches = append(patches, patch)
		}
	}
	return patches, nil
}

func acquireAddOverrideOption(commandArgsPath string, commandOverrider *v1alpha1.CommandArgsOver


para afuera.:

myNameSpace = function(){
  var current = null;
  function init(){...}
  function change(){...}
  function verify(){...}
  return{
    init:init,
    set:change
  }
}();

Llamando a myNameSpace.set() se invocará el método change().

Si no necesitamos que ninguna de las variables o funciones estén disponibles fuera, simplemente envolvemos toda la

construcción en otro conjunto de paréntesis, para ejecutarlo sin tener que asignar un nombre a ello:

(function(){

  var current = null;

  function init(){...}

  function change(){...}

  function verify(){...}

})();

Esto mantiene todo en un paquete pequeño y ordenado, que es inacesible para el mundo exterior, pero que es muy fácil

compartir variables y funciones dentro de él.

Mantenerse en un estilo de codificación estricta

Los navegadores son muy olvidadizos cuando interpretan la sintaxis de JavaScript. Esto no debería ser una

razón para escribir código descuidado que dependa de los navegadores para funcionar.

La forma más sencilla de comprobar la calidad sintáctica de nuestro código es pasarlo a través de

JSLint — una herramienta de validación de JavaScript,

que nos da informe detallado sobre warnings en la sintaxis, y su significado. Determinada gente ha escrito

extensiones para editores (por ejemplo, JS Tools for TextMate)

que, automáticamente, chequean el código cuando lo guardamos.

JSLint puede ser un poco quisquilloso con los resultados que devuelve, y — como dice su desarrollador

Douglas Crockford — puede herir nuestros sentimientos.Yo puedo decir que escribo mucho mejor código

desde que instalé la heramienta TextMate JS, y y empezé a someter el código al escrutinio de JSLint.

Código válido y limpio significa menos bugs confusos a resolver, mejor integración con otros desarrolladores,

y mejor seguridad en el código. Cuando confiamos en hacks para hacer que nuestro código funcione, es posible

que exista algún exploit que utilize esos mismos hacks. Además, según los hacks se van arreglando en los

navegadores, nuestro código dejará de funcionar en subsiguientes versiones del navegador.

Código válido también significa que puede ser convertido por scripts a otros formatos — código

basado en hacks necesitará de un humano para hacerlo.

Comenta tanto como ne


    cmds.append(f"crypto isakmp profile {profile_name}")

    if ca_trustpoint and ca_trustpoint_name:
        cmds.append(f"ca trust-point {ca_trustpoint_name}")
    if match_certificate and certificate_name:
        cmds.append(f"match certificate {certificate_name}")

    try:
        device.configure(cmds)
    except SubCommandFailure as e:
        raise SubCommandFailure(f"Failed to configure crypto isakmp profile {profile_name}: {e}")

def unconfigure_crypto_isakmp_profile(device, profile_name):
    """ Unconfigure crypto ISAKMP profile from device
        Args:
            device (`obj`): Device object
            profile_name (`str`): Name of the ISAKMP profile to remove
        Returns:
            None
        Raises:
            SubCommandFailure: If unconfiguration fails
    """
    cmds = [f"no crypto isakmp profile {profile_name}"]
    try:
        device.configure(cmds)
    except SubCommandFailure as e:
        raise SubCommandFailure(f"Failed to unconfigure crypto isakmp profile {profile_name}: {e}")

def configure_crypto_pki_http_max_buffer_size(device, size):
    """
        Configure the maximum HTTP buffer size for PKI operations.
        Args:
            device (obj): Device object
            size (int): Buffer size value to set
        Raises:
            SubCommandFailure: If configuration fails
    """
    cmds = [f"crypto pki http max-buffer-size {size}"]
    try:
        device.configure(cmds)
    except SubCommandFailure as e:
        raise SubCommandFailure(f"Failed to configure crypto pki http max buffer size {size}: {e}")

def unconfigure_crypto_pki_http_max_buffer_size(device):
    """
        Unonfigure the maximum HTTP buffer size for PKI operations.
        Args:
            device (obj): Device object
        Raises:
            SubCommandFailure: If configuration fails
    """
    cmds = [f"no crypto pki http max-buffer-size"]
    try:
        device.configure(cmds)
    except SubCommandFailure as e:
        raise SubCommandFailure(f"Failed to unconfigure crypto pki http max buffer size: {e}")


,.bg-success h6,.bg-warning h1,.bg-warning h2,.bg-warning h3,.bg-warning h4,.bg-warning h5,.bg-warning h6{color:#fff}.dropdown-menu .dropdown-header{color:#868e96}/*!
 * Bootswatch v4.6.1
 * Homepage: https://bootswatch.com
 * Copyright 2012-2021 Thomas Park
 * Licensed under MIT
 * Based on Bootstrap
*//*!
 * Bootstrap v4.6.1 (https://getbootstrap.com/)
 * Copyright 2011-2021 The Bootstrap Authors
 * Copyright 2011-2021 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */@import url(https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600&display=swap);:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#d9534f;--orange:#fd7e14;--yellow:#f0ad4e;--green:#4bbf73;--teal:#20c997;--cyan:#1f9bcf;--white:#fff;--gray:#919aa1;--gray-dark:#343a40;--primary:#1a1a1a;--secondary:#fff;--success:#4bbf73;--info:#1f9bcf;--warning:#f0ad4e;--danger:#d9534f;--light:#fff;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:.875rem;font-weight:400;line-height:1.5;color:#55595c;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em


 .content .meta > * {
  position: relative;
  margin-left: 0.75em;
}

.ui.feed > .event > .content .meta > *:after {
  content: '';
  color: rgba(0, 0, 0, 0.2);
  top: 0em;
  left: -1em;
  opacity: 1;
  position: absolute;
  vertical-align: top;
}

.ui.feed > .event > .content .meta .like {
  color: '';
  -webkit-transition: 0.2s color ease;
  transition: 0.2s color ease;
}

.ui.feed > .event > .content .meta .like:hover .icon {
  color: #FF2733;
}

.ui.feed > .event > .content .meta .active.like .icon {
  color: #EF404A;
}

/* First element */

.ui.feed > .event > .content .meta > :first-child {
  margin-left: 0em;
}

.ui.feed > .event > .content .meta > :first-child::after {
  display: none;
}

/* Action */

.ui.feed > .event > .content .meta a,
.ui.feed > .event > .content .meta > .icon {
  cursor: pointer;
  opacity: 1;
  color: rgba(0, 0, 0, 0.5);
  -webkit-transition: color 0.1s ease;
  transition: color 0.1s ease;
}

.ui.feed > .event > .content .meta a:hover,
.ui.feed > .event > .content .meta a:hover .icon,
.ui.feed > .event > .content .meta > .icon:hover {
  color: rgba(0, 0, 0, 0.95);
}

/*******************************
            Variations
*******************************/

.ui.small.feed {
  font-size: 0.92857143rem;
}

.ui.feed {
  font-size: 1rem;
}

.ui.large.feed {
  font-size: 1.14285714rem;
}

/*******************************
         Theme Overrides
*******************************/

/*******************************
    User Variable Overrides
*******************************/
/*!
 * # Semantic UI 2.3.1 - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */

/*******************************
            Standard
*******************************/

/*--------------
      Item
---------------*/

.ui.items > .item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 1em 0em;
  width: 100%;
  min-height: 0px;
  background: transparent;
  padding: 0em;
  border: none;
  border-radius: 0rem;
  -webkit-box-shadow: none;
  box-shadow: none;
  -webkit-transition: -webkit-box-shadow 0.1s ease;
  transition: -webkit-box-shadow 0.1s ease;
  transition: box-shadow 0.1s ease;
  transition: box-shadow 0.1s ease, -webkit-box-shadow 0.1s ease;
  z-index: '';
}

.ui.items > .item a {
  cursor: pointer;
}

/*--------------
      Items
---------------*/

.ui.items {
  margin: 1.5em 0em;
}

.ui.items:first-child {
  margin-top: 0em !important;
}

.ui.items:last-child {
  margin-bottom: 0em !important;
}

/*--------------
      Item
---------------*/

.ui.items > .item:after {
  display:


//
// This is the source code of Telegram for Windows Phone v. 3.x.x.
// It is licensed under GNU GPL v. 2 or later.
// You should have received a copy of the license in this archive (see LICENSE).
//
// Copyright Evgeny Nadymov, 2013-present.
//
namespace Telegram.Api.TL.Functions.Channels
{
    class TLGetImportantHistory : TLObject
    {
        public const uint Signature = 0x8f494bb2;

        public TLInputChannelBase Channel { get; set; }

        public TLInt OffsetId { get; set; }

        public TLInt OffsetDate { get; set; }

        public


ttp://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'flash', 'th', {
	access: 'การเข้าถึงสคริปต์',
	accessAlways: 'ตลอดไป',
	accessNever: 'ไม่เลย',
	accessSameDomain: 'โดเมนเดียวกัน',
	alignAbsBottom: 'ชิดด้านล่างสุด',
	alignAbsMiddle: 'กึ่งกลาง',
	alignBaseline: 'ชิดบรรทัด',
	alignTextTop: 'ใต้ตัวอักษร',
	bgcolor: 'สีพื้นหลัง',
	chkFull: 'อนุญาตให้แสดงเต็มหน้าจอได้',
	chkLoop: 'เล่นวนรอบ Loop',
	chkMenu: 'ให้ใช้งานเมนูของ Flash',
	chkPlay: 'เล่นอัตโนมัติ Auto Play',
	flashvars: 'ตัวแปรสำหรับ Flas',
	hSpace: 'ระยะแนวนอน',
	properties: 'คุณสมบัติของไฟล์ Flash',
	propertiesTab: 'คุณสมบัติ',
	quality: 'คุณภาพ',
	qualityAutoHigh: 'ปรับคุณภาพสูงอัตโนมัติ',
	qualityAutoLow: 'ปรับคุณภาพต่ำอัตโนมัติ',
	qualityBest: 'ดีที่สุด',
	qualityHigh: 'สูง',
	qualityLow: 'ต่ำ',
	qualityMedium: 'ปานกลาง',
	scale: 'อัตราส่วน Scale',
	scaleAll: 'แสดงให้เห็นทั้งหมด Show all',
	scaleFit: 'แสดงให้พอดีกับพื้นที่ Exact Fit',
	scaleNoBorder: 'ไม่แสดงเส้นขอบ No Border',
	title: 'คุณสมบัติของไฟล์ Flash',
	vSpace: 'ระยะแนวตั้ง',
	validateHSpace: 'HSpace ต้องเป็นจำนวนตัวเลข',
	validateSrc: 'กรุณาระบุที่อยู่อ้างอิงออนไลน์ (URL)',
	validateVSpace: 'VSpace ต้องเป็นจำนวนตัวเลข',
	windowMode: 'โหมดหน้าต่าง',
	windowModeOpaque: 'ความทึบแสง',
	windowModeTransparent: 'ความโปรงแสง',
	windowModeWindow: 'หน้าต่าง'
} );
/*
Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.plugins.setLang( 'flash', 'nb', {
	access: 'Scripttilgang',
	accessAlways: 'Alltid',
	accessNever: 'Aldri',
	accessSameDomain: 'Samme domene',
	alignAbsBottom: 'Abs bunn',
	alignAbsMiddle: 'Abs midten',
	alignBaseline: 'Bunnlinje',
	alignTextTop: 'Tekst topp',
	bgcolor: 'Bakgrunnsfarge',
	chkFull: 'Tillat fullskjerm',
	chkLoop: 'Loop',
	chkMenu: 'Slå på Flash-meny',
	chkPlay: 'Autospill',
	flashvars: 'Variabler for flash',
	hSpace: 'HMarg',
	properties: 'Egenskaper for Flash-objekt',
	propertiesTab: 'Egenskaper',
	quality: 'Kvalitet',


st length = 'length', stop = 'stop';
}

enum GptModel {
  gpt35Turbo(model: 'gpt-3.5-turbo', maxTokens: 4096);

  const GptModel({required this.model, required this.maxTokens});

  final String model;
  final int maxTokens;
}import 'dart:io';

import 'package:drift/drift.dart';
import 'package:drift/native.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;

part 'hao_database.g.dart';

mixin AutoIncrementingPrimaryKey on Table {
  IntColumn get id => integer().autoIncrement()();
}

@Deprecated('Use Chats instead')
class ChatTitles extends Table with AutoIncrementingPrimaryKey {
  TextColumn get title => text()();
  BoolColumn get isFavorite => boolean().nullable()();
  DateTimeColumn get chatDate => dateTime()();
}

@Deprecated('Use Messages instead')
class Conversations extends Table with AutoIncrementingPrimaryKey {
  IntColumn get titleId => integer().references(ChatTitles, #id)();
  TextColumn get inputMessage => text()();
  TextColumn get prompt => text()();
  TextColumn get completion => text().nullable()();
  BoolColumn get isError => boolean().nullable()();
  DateTimeColumn get promptDate => dateTime()();
}

class Chats extends Table with AutoIncrementingPrimaryKey {
  TextColumn get title => text()();
  TextColumn get system => text()();
  BoolColumn get isFavorite => boolean()();
  DateTimeColumn get chatDateTime => dateTime()();
}

class Messages extends Table with AutoIncrementingPrimaryKey {
  IntColumn get chatId => integer().references(Chats, #id)();
  TextColumn get role => text()();
  TextColumn get content => text()();
  BoolColumn get isResponse => boolean()();
  IntColumn get promptTokens => integer().nullable()();
  IntColumn get completionTokens => integer().nullable()();
  IntColumn get totalTokens => integer().nullable()();
  TextColumn get finishReason => text().nullable()();
  BoolColumn get isFavorite => boolean()();
  DateTimeColumn get msgDateTime => dateTime()();
}

class SystemPrompts extends Table with AutoIncrementingPrimaryKey {
  TextColumn get prompt => text()();
  DateTimeColumn get createDateTime => dateTime()();
}

@DriftDatabase(tables: [ChatTitles, Conversations, Chats, Messages, SystemPrompts])
class HaoDatabase extends _$HaoDatabase {
  HaoDatabase() : super(_openConnection());

  // you should bump this number whenever you change or add a table definition.
  // Migrations are covered later in the documentation.
  @override
  int get schemaVersion => 3;

  @override
  MigrationStrategy get migration {
    return MigrationStrategy(
      onUpgrade: (m, from, to) async {
        for (var step = from + 1; step <= to; step++) {
          switch (step) {
            case 2:
              m.createTable(chats);
              m.createTable(messages);
              break;
            case 3:
              m.createTable(systemPrompts);
              break;
          }
        }
      },
      beforeOpen: (details) async {
        // Make sure that foreign keys are enabled
        await customStatement('PRAGMA foreign_keys = ON');
      },
    );
  }
}

LazyDatabase _openConnection() {
  // the LazyDatabase util lets us find the right location for the file async.
  return LazyDatabase(() async {
    // put the database file, called db.sqlite here, into the documents folder
    // for your app.
    final dbFolder = await getApplicationDocumentsDirectory();
    final file = File(p.join(dbFolder.path, 'hao_chat.db'));
    return NativeDatabase.createInBackground(file);
  });
}


, \
                            int(size), int(size)]
                image_patch = cv2.resize(utils.crop_padding(
                    image, new_bbox, pad_value=(0,0,0)),
                    (input_size, input_size), interpolation=cv2.INTER_CUBIC)
                modal_i_patch = resize_mask(utils.crop_padding(
                    inmodal[i], new_bbox, pad_value=(0,)),
                    input_size, 'nearest')
                modal_j_patch = resize_mask(utils.crop_padding(
                    inmodal[j], new_bbox, pad_value=(0,)),
                    input_size, 'nearest')
                if np.random.rand() > 0.5: # randomize the input order
                    j_over_i = net_forward_ordernet(
                        model, image_patch, modal_j_patch, modal_i_patch, use_rgb)
                else:
                    j_over_i = not net_forward_ordernet(
                        model, image_patch, modal_i_patch, modal_j_patch, use_rgb)
                if j_over_i:
                    order_matrix[i, j] = -1
                    order_matrix[j, i] = 1
                else:
                    order_matrix[i, j] = 1
                    order_matrix[j, i] = -1

    return order_matrix

def infer_order(model, image, inmodal, category, bboxes, use_rgb=True, th=0.5, dilate_kernel=0, input_size=None, min_input_size=32, interp='nearest', debug_info=False, args=None, supervised=False):
    '''
    image: HW3, inmodal: NHW, category: N, bboxes: N4
    '''
    deal_with_fullcover = False
    num = inmodal.shape[0]
    order_matrix = np.zeros((num, num), dtype=int)
    ind = []
    if deal_with_fullcover:
        fullcover_inds = []
    for i in range(num):
        for j in range(i + 1, num):
            if bordering(inmodal[i], inmodal[j]):
                ind.append([i, j])
                ind.append([j, i])
            if deal_with_fullcover:
                fullcover = fullcovering(inmodal[i], inmodal[j], bboxes[i], bboxes[j])
                if fullcover == 1:
                    fullcover_inds.append([i, j])
                elif fullcover == 2:
                    fullcover_inds.append([j, i])
    # 获取潜在遮挡关系的对数
    pairnum = len(ind)
    if pairnum == 0:
        return order_matrix
    ind = np.array(ind)
    eraser_patches = []
    inmodal_patches = []
    amodal_patches = []
    ratios = []
    erasers = []
    for i in range(pairnum):
        # tid 目标对象索引
        tid = ind[i, 0]
        # eid 擦除对象索引
        eid = ind[i, 1]
        # image_patch:从原始图像中裁剪出的目标对象区域
        image_patch = utils.crop_padding(image, bboxes[tid], pad_value=(0,0,0))
        # inmodal_patch：从模态掩码中裁剪出的目标对象区域
        inmodal_patch = utils.crop_padding(inmodal[tid], bboxes[tid], pad_value=(0,))
        # eraser：从模态掩码中裁剪出的擦除对象区域
        eraser = utils.crop_padding(inmodal[eid], bboxes[tid], pad_value=(0,))

        if input_size is not None:
            newsize = input_size
        elif min_input_size > bboxes[tid,2]:
            newsize = min_input_size
        else:
            newsize = None

        if newsize is not None:
            inmodal_patch = resize_mask(inmodal_patch, newsize, interp)
            image_patch = cv2.resize(image_patch,
                (newsize, newsize), interpolation=cv2.INTER_CUBIC)
            eraser = resize_mask(eraser, newsize, interp)

        if dilate_kernel > 0:
            eraser = cv2.dilate(eraser, np.ones((dilate_kernel, dilate_kernel), np.uint8),
                                iterations=1)
        # erase inmodal 在擦除器掩盖的区域将模态掩码设置为0
        inmodal_patch[eraser == 1] = 0
        # gather
        inmodal_patches.append(inmodal_patch)
        eraser_patches.append(eraser)
        ratios.append(1. if newsize is None else bboxes[tid,2] / float(newsize))

        if not args.data.get('use_matting', False):
            image_patch = image_patch * (1 - eraser[..., None])

        if not args.data['use_default']:
            border_width = args.data.get('border_width', 5)

            eraser_extend = F.max_pool2d(torch.from_numpy(eraser[None, None, ...]).float(), border_width, stride=1, padding=border_width//2)
            modal_extend = F.max_pool2d(torch.from_numpy(inmodal_patch[None, None, ...]).float(), border_width, stride=1, padding=border_width//2)
            eraser = ((eraser_extend == 1) & (modal_extend == 1))[0, 0].numpy()

        if supervised:
            eraser = None

        if args.data['dataset'] == 'KINS':
            amodal_patch = net_forward(
                model, image_patch, i


 "Charlie", "10:00", "9:00", Voiture(null)),
            Trajet("11/01/2023", "6400 16e Avenue,...", "Dana", "11:00", "10:00", Voiture(null))
        )
        Mockito.`when`(source.getTrajetsVenirData()).thenReturn(trajetsÀVenirAttendus)

        val trajets = présentateur.getTrajetsVenirData()

        assertEquals(trajetsÀVenirAttendus.size, trajets.size)
        assertEquals(trajetsÀVenirAttendus, trajets)
    }
}

package crosemont.dti.g55.applicationallezhop.sourceDeDonnées

import android.util.JsonReader
import android.util.JsonToken
import android.util.Log
import crosemont.dti.g55.applicationallezhop.Domaine.Entité.Donnée
import crosemont.dti.g55.applicationallezhop.Domaine.Entité.Serveur
import crosemont.dti.g55.applicationallezhop.Modèle.Adresse
import crosemont.dti.g55.applicationallezhop.Modèle.Trajet
import crosemont.dti.g55.applicationallezhop.Modèle.Voiture
import java.io.StringReader
import kotlin.math.log

class DécodeurJson {
	companion object {

		/**
		 * Crée un objet Donnée à partir de sa représentation JSON
		 *
		 * @params json Une chaîne de caractères en format JSON représentant une Donnée
		 * @return La Donnée créée
		 */
		fun décoderJsonVersDonnée(json: String): Donnée {
			var trajet = mutableListOf<Trajet>()

			val reader = JsonReader(StringReader(json))

			if (reader.peek() == JsonToken.BEGIN_ARRAY){
				reader.beginArray()
					while (reader.hasNext()) {
						reader.beginObject()
						lateinit var date: String
						lateinit var destination: Adresse
						lateinit var conducteur: String
						lateinit var heureArriver: String
						lateinit var heureDépart: String
						lateinit var voiture: Voiture

						while (reader.hasNext()) {
							val clé = reader.nextName()
							when (clé) {
								"date" -> date = reader.nextString()
								"destination" -> destination = décoderJsonVersAdresse(reader)
								"conducteur" -> conducteur = reader.nextString()
								"heureArriver" -> heureArriver = reader.nextString()
								"heureDépart" -> heureDépart = reader.nextString()
								"voiture" -> voiture = décoderJsonVersVoiture(reader)
								else -> reader.skipValue()
							}
						}
						reader.endObject()

						val unTrajet = Trajet(date, destination, conducteur, heureArriver, heureDépart, voiture)
						trajet.add(unTrajet)
					}
				reader.endArray()
			}
			else{
				reader.beginObject()
				lateinit var date: String
				lateinit var destination: Adresse
				lateinit var conducteur: String
				lateinit var heureArriver: String
				lateinit var heureDépart: String
				lateinit var voiture: Voiture

				while (reader.hasNext()) {
					val clé = reader.nextName()
					when (clé) {
						"date" -> date = reader.nextString()
						"destination" -> {
							Log.d("Test", "Test avant la destination")
							destination = décoderJsonVersAdresse(reader)
							Log.d("Test", "Test après la destination: $destination")
						}

						"conducteur" -> conducteur = reader.nextString()
						"heureArriver" -> heureArriver = reader.nextString()
						"heureDépart" -> heureDépart = read


r>
v32544.vmi Submitted by: Night Rave

v4846.vmi Submitted by: thomas l. uddybackIII

v15981.vmi Submitted by: Dino Dilabio

v92450.vmi Submitted by: Dylan

v60094.vmi Submitted by: Computerman45

v58812.vmi Submitted by: MR. LOVE

v75359.vmi Submitted by: ELLY

v39598.vmi Submitted by: The

v24089.vmi Submitted by: KAKA

v45276.vmi Submitted by: SET

v8262.vmi Submitted by: Dean

v6305.vmi Submitted by: mikhael

v65002.vmi Submitted by: DungeonMaster70

v84767.vmi Submitted by: Fieldy

v38041.vmi Submitted by: zach111

v62157.vmi Submitted by: argyle

v42979.vmi Submitted by: lil J

v37882.vmi Submitted by: leandro

v31234.vmi Submitted by: Chris

v66518.vmi Submitted by: Franklin

v68323.vmi Submitted by: leandro

v14517.vmi Submitted by: Jared Peebles

v26019.vmi Submitted by: Micah

v1944.vmi Submitted by: tj

v56139.vmi Submitted by: micyah

v85560.vmi Submitted by: micyah

v99959.vmi Submitted by: CoRvO-X

v9714.vmi Submitted by: Hudson Luiz Sales Schumaker

v56316.vmi Submitted by: super b


ndle two kinds of requests: Command and Query.
/// (we name Query as `Request` in the following code)
///
/// The Commands are allowed to update the state of contract. They are first sent to the blockchain, and then distributed
/// the according contract. Such design ensures the state consistency across multiple instances of the same contract, since
/// all the instances will reach the same state after replaying all the Commands.
/// Such property limits the use of random generator in our contracts: you can only generate random with on-chain entropy,
/// because off-chain random generation can break the state consistency. We will show an example in the following code.
///
/// The Queries are not allowed to change the state of contract. They are directly sent to contract through the local rpc
/// endpoint. Since they are off-chain requests, they can be sent and then real-time processed.
///
/// For the advanced usage of HTTP request in contract, refer to `btc_price_bot.rs`.

/// The Commands to this contract
///
/// Commands need to be first posted on chain then will be dispatched to the contract, that why we define the `PastebinCommand`
/// in phala_types to be used globally.
/// They can change the state of the contract, with no responses.
type Command = PastebinCommand;

type PostId = String;

type PostContent = String;

type PostTitle = String;

type CreateOn = u64;

fn now() -> u64 {
    use std::time::SystemTime;
    let now = SystemTime::now()
        .duration_since(SystemTime::UNIX_EPOCH)
        .unwrap();
    now.as_secs()
}

// Post state for each bin
#[derive(Encode, Decode, Debug, Clone, Default)]
pub struct Post {
    id: PostId,
    content: PostContent,
    owner: AccountId,
    is_private: bool,
    readable_by: AccountId, //Vec<H256>, /// FIXME: cannot infer accountid on command
    created_on: CreateOn,
    title: PostTitle,
}

/// Contract state
#[derive(Debug, Default)]
pub struct Pastebin {
    /// TODO: change this with Vector and add index
    post_by_id: HashMap<PostId, Post>,
}

/// The Queries to this contract
///
/// End users query the contract state by directly sending Queries to the pRuntime without going on chain.
/// They should not change the contract state.
#[derive(Encode, Decode, Debug, Clone)]
pub enum Request {
    /// Query the content of pastebin
    QueryPost { id: PostId },
}

/// The Query results
#[derive(Encode, Decode, Debug, Clone)]
pub enum Response {
    Post(Post),
}

#[derive(Encode, Decode, Debug)]
pub enum Error {
    OriginUnavailable,
    NotAuthorized,
    NotFound,
}

impl Pastebin {
    pub fn new() -> Self {
        Pastebin {
            post_by_id: HashMap::new(),
        }
    }
}

// Alice is the pre-defined root account in dev mode
const ALICE: &str = "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d";

impl contracts::NativeContract for Pastebin {
    type Cmd = Command;
    type QReq = Request;
    type QResp = Result<Response, Error>;

    /// Return the contract id which uniquely identifies the contract
    fn id(&self) -> contracts::ContractId32 {
        contracts::PASTEBIN
    }

    /// Handle the Commands from transactions on the blockchain. This method doesn't respond.
    ///
    /// # Arguments
    ///


at;
        fromVec3Degrees(vec3: IVec3): IQuat;
        fromVec3Radians(vec3: IVec3): IQuat;
        fromPitchYawRollDegrees(pitch: number /* float */, yaw: number /* float */, roll: number /* float */): IQuat;
        fromPitchYawRollRadians(pitch: number /* float */, yaw: number /* float */, roll: number /* float */): IQuat;
        inverse(q: IQuat): IQuat;
        getFront(orientation: IQuat): IVec3;
        getRight(orientation: IQuat): IVec3;
        getUp(orientation: IQuat): IVec3;
        safeEulerAngles(orientation: IQuat): IVec3;
        angleAxis(angleInDegrees: number /* float */, v: IVec3): IQuat;
        mix(q1: IQuat, q2: IQuat, alpha: number /* float */): IQuat;
        slerp(q1: IQuat, q2: IQuat, alpha: number /* float */): IQuat;
        squad(q1: IQuat, q2: IQuat, s1: IQuat, s2: IQuat, h: number /* float */): IQuat;
        dot(q1: IQuat, q2: IQuat): number /* float */;
        print(lable: string, q: IQuat): void;
    }
}

declare var Quat: hifi.IQuatStatic;
import { IKeyValuePair } from '../../../../ReplicatedStorage/ToughS/StandardLib/KeyValuePair';

export interface IRodash {
    slice: (source : Array<object>, first? : number, last? : number, step? : number) => object[]
    get: <TKey, TValue>(source : Iterable<object>, key : TKey, ... keys : TKey[]) => TValue
    map: <TKey, TValueA, TValueB>(source: Iterable<IKeyValuePair<TKey, TValueA>>,
        handler: (element: IKeyValuePair<TKey, TValueA>) => TValueB) => Iterable<IKeyValuePair<TKey, TValueB>>
    mapValues: <TKey, TValueA, TValueB>(source: Iterable<IKeyValuePair<TKey, TValueA>>,
        handler: (element: IKeyValuePair<TKey, TValueA>) => TValueB) => Iterable<IKeyValuePair<TKey, TValueB>>
    mapKeys: <TKey, TValueA, TValueB>(source: Iterable<IKeyValuePair<TKey, TValueA>>,
        handler: (element: TValueA, key: TKey) => TValueB) => Iterable<IKeyValuePair<TKey, TValueB>>
    flatMap: <TKey, TValue, TUnion>(source : Iterable<IKeyValuePair<TKey, TValue>>,
        handler: (element: TValue, key: TKey) => TUnion[]) => TUnion[]
    shuffle: <Iterable>(source : Iterable) => Iterable
    filter: <TKey, TValue>(source: Iterable<IKeyValuePair<TKey, TValue>>, handler: (element: TValue, key: TKey) => boolean) => TValue[]
}import { subject, behaviorSubject, replaySubject } from './subjects';

export const checkSubject = (addItem: any) => {
    subject.subscribe(
        data => addItem('Observer 1: ' + data),
        err => addItem(err),
        () => addItem('Observer 1 Completed')
    );

    subject.next('The 1st thing has been set');

    const observer2 = subject.subscribe(
        data => addItem('Observer 2: ' + data)
    );

    subject.next('The 2nd thing has been sent');
    subject.next('The 3rd thing has been sent');

    observer2.unsubscribe();

    subject.next('The final thing has been sent');
};

export const checkBehaviorSubject = (addItem: any) => {
    behaviorSubject.subscribe(
        data => addItem('Observer 1: ' + data),
        err => addItem(err),
        () => addItem('Observer 1 Completed')
    );

    behaviorSubject.next('The 1st thing has been set');

    //


-r-cb {
  vertical-align: sub;
}

#oe-canvas-preview {
  position: absolute;
  margin-left: 5px;
  margin-top: 3px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.25);
}

/** MOBILE ONLY DISABLES **/
.mobile {
	display: none;
}

/** HEADER **/
ul.rules {
  margin: 0px;
  padding: 0px;
  margin-top: 5px;
}

ul.rules > li {
  list-style: none;
  font-size: 11px;
}

.rules > li:before {
	content: "\2022 \20";
}

div.boardBanner {
	text-align: center;
	clear: both;
}

#bannerCnt {
	border: 1px solid #800;
	margin: 5px auto;
	width: 300px;
	height: 100px;
	max-width: 100%;
}

div.boardBanner > div.boardTitle {
	font-family: Tahoma, sans-serif;
	font-size: 28px;
	font-weight: bold;
	letter-spacing: -2px;

	margin-top: 0px;
}

div.boardBanner > div.boardSubtitle {
	font-size: x-small;
}

div#boardNavDesktop {
	font-size: 9pt;
	color: #B86;
	display: block;
}

.hasDropDownNav #navtopright {
  display: none;
}

#boardNavDesktop .pageJump {
  padding: 0;
}

#boardNavDesktop .pageJump a {
  padding-right: 5px;
}

div#boardNavDesktop a {
	font-weight: normal;
	padding: 1px;
	text-decoration: none;
	color: #800000;
}

/** General Containers **/
div.pContainer {

}

div.opContainer {
	display: inline;
}

div.sideArrows {
	color: #e0bfb7;

	float: left;

	margin-right: 2px;
	margin-top: 0px;
	margin-left: 2px;
}

/** Thread Container **/
div.thread {

	margin: 0px;
	clear: both;

}

/** Post Container **/
div.post {
	margin: 4px 0;
	overflow: hidden;
}

div.thread > div:nth-of-type(2) > div.reply {
	margin-top: 2px !important;
}

div.op {
	display: inline;
}

div.reply {
	background-color: #f0e0d6;

	border: 1px solid #D9BFB7;
	border-left: none;
	border-top: none;

	display: table;

	padding: 2px;
}

div.reply input {
	float: none;
}

/** Post Information **/
div.post div.postInfo {
	display: block;
	width: 100%;
}

.fileText {
  max-width: 600px;
  white-space: nowrap;
}

div.post div.postInfo span.postNum {

}

div.post div.postInfo span.postNum a {
	text-decoration: none;
	color: #800000;
}

div.post div.postInfo span.postNum a:hover, .posteruid .hand:hover {
	color: red !important;
}

/* Name */
div.post div.postInfo span.nameBlock {
	display: inline-block;
}

div.post div.postInfo span.nameBlock span.name {
	color: #117743;
	font-weight: bold;
}

div.post div.postInfo span.nameBlock span.postertrip {
	color: #117743;
	font-weight: normal !important;
}

/* Date/Time */
div.post div.


WithProperties.flatProperties) {
                        val name = eprop.name
                        val prop = eprop.prop
                        val viewProp = eprop.viewProp
                        try {
                            val res = createUiEditableValueFor(instance, prop.returnType, viewProp, prop as KProperty1<View, *>, null)
                            val item = res ?: UiLabel(app).also { it.text = "<UNSUPPORTED TYPE>" }
                            if (item is UiEditableValue<*> || item is UiLabel) {
                                addChild(UiRowEditableValue(app, name, item))
                            } else {
                                addChild(item)
                            }
                        } catch (e: Throwable) {
                            e.printStackTrace()
                            addChild(UiRowEditableValue(app, prop.name, UiLabel(app).also { it.text = "<EXCEPTION>" }))
                        }
                    }
                }
            }
        }
    }

    fun setViewBase(view: View?) {
        propsContainer.removeChildren()
        currentView = view
        if (view != null) {
            createPropsForInstance(view, propsContainer)
        }
        //view?.buildDebugComponent(views, this@UiEditProperties.propsContainer)
    }

    data class Two<T>(val x: T, val y: T) {
        operator fun get(index: Int): T = when (index) {
            0 -> x; 1 -> y
            else -> TODO()
        }
        fun with(index: Int, v: T): Two<T> = when (index) {
            0 -> Two(v, y)
            1 -> Two(x, v)
            else -> TODO()
        }
    }

    data class Three<T>(val x: T, val y: T, val z: T) {
        operator fun get(index: Int): T = when (index) {
            0 -> x; 1 -> y; 2 -> z
            else -> TODO()
        }
        fun with(index: Int, v: T): Three<T> = when (index) {
            0 -> Three(v, y, z)
            1 -> Three(x, v, z)
            2 -> Three(x, y, v)
            else -> TODO()
        }
    }

    data class Four<T>(val x: T, val y: T, val z: T, val w: T) {
        operator fun get(index: Int): T = when (index) {
            0 -> x; 1 -> y; 2 -> z; 3 -> w
            else -> TODO()
        }
        fun with(index: Int, v: T): Four<T> = when (index) {
            0 -> Four(v, y, z, w)
            1 -> Four(x, v, z, w)
            2 -> Four(x, y, v, w)
            3 -> Four(x, y, z, v)
            else -> TODO()
        }
    }

    private inline fun <reified T> createOne(
        noinline get: (p: Double) -> T, noinline extract: (T) -> Double,
        obs: ObservableProperty<*>,
        viewProp: ViewProperty,
        name: String = viewProp.name,
        rangeMin: Double = viewProp.min,
        rangeMax: Double = viewProp.max,
        clampMin: Boolean = viewProp.clampMin,
        clampMax: Boolean = viewProp.clampMax,
    ): UiComponent? {
        val rr = obs as ObservableProperty<T>
        val robs = ObservableProperty(name, { rr.value = get(it) }, { extract(rr.value) })
        return UiNumberEditableValue(app, robs, rangeMin, rangeMax, clampMin, clampMax, 0)
    }

    private inline fun <reified T> createPair(noinline get: (p: Two<Double>) -> T, noinline extract: (T) -> Two<Double>, instance: Any, prop: KProperty1<*, *>?, viewProp: ViewProperty, names: List<Strin


[language.toLowerCase()];
    if (mappedLanguage != null) {
      return mappedLanguage;
    }

    // 然后检查语言标识符
    for (final entry in languagePatterns.entries) {
      final pattern = RegExp(entry.key, caseSensitive: false);
      if (pattern.hasMatch(language.toLowerCase())) {
        return entry.value;
      }
    }

    return language;
  }

  // 更新指定的字幕轨道信息
  void _updateSubtitleTracksInfo(int trackIndex) {
    if (player.mediaInfo.subtitle == null ||
        trackIndex >= player.mediaInfo.subtitle!.length) {
      return;
    }

    final track = player.mediaInfo.subtitle![trackIndex];
    // 尝试从track中提取title和language
    String title = '轨道 $trackIndex';
    String language = '未知';

    final fullString = track.toString();
    if (fullString.contains('metadata: {')) {
      final metadataStart = fullString.indexOf('metadata: {') + 'metadata: {'.length;
      final metadataEnd = fullString.indexOf('}', metadataStart);

      if (metadataEnd > metadataStart) {
        final metadataStr = fullString.substring(metadataStart, metadataEnd);

        // 提取title
        final titleMatch = RegExp(r'title: ([^,}]+)').firstMatch(metadataStr);
        if (titleMatch != null) {
          title = titleMatch.group(1)?.trim() ?? title;
        }

        // 提取language
        final languageMatch = RegExp(r'language: ([^,}]+)').firstMatch(metadataStr);
        if (languageMatch != null) {
          language = languageMatch.group(1)?.trim() ?? language;
          // 获取映射后的语言名称
          language = _getLanguageName(language);
        }
      }
    }

    // 更新VideoPlayerState的字幕轨道信息
    _subtitleManager.updateSubtitleTrackInfo('embedded_subtitle_$trackIndex', {
      'index': trackIndex,
      'title': title,
      'language': language,
      'isActive': player.activeSubtitleTracks.contains(trackIndex)
    });

    // 清除外部字幕信息的激活状态
    if (player.activeSubtitleTracks.contains(trackIndex) &&
        _subtitleManager.subtitleTrackInfo.containsKey('external_subtitle')) {
      _subtitleManager.updateSubtitleTrackInfo('external_subtitle', {
        'isActive': false
      });
    }
  }

  // 更新所有字幕轨道信息
  void _updateAllSubtitleTracksInfo() {
    if (player.mediaInfo.subtitle == null) {
      return;
    }

    // 清除之前的内嵌字幕轨道信息
    for (final key in List.from(_subtitleManager.subtitleTrackInfo.keys)) {
      if (key.startsWith('embedded_subtitle_')) {
        _subtitleManager.subtitleTrackInfo.remove(key);
      }
    }

    // 更新所有内嵌字幕轨道信息
    for (var i = 0; i < player.mediaInfo.subtitle!.length; i++) {
      _updateSubtitleTracksInfo(i);
    }

    // 在更新完成后检查当前激活的字幕轨道并确保相应的信息被更新
    if (player.activeSubtitleTracks.isNotEmpty) {
      final activeIndex = player.activeSubtitleTracks.first;
      if (activeIndex > 0 && activeIndex <=


return {
      invoke: () => this.invoke(source),
      getState: () => this.getState(source),
      registerChangeListener: (listener: ToggleChangeListener) => {
        handler = (event) => {
          if (event.sourceName === source) {
            listener(event.muted);
          }
        };
        connectHandler = () => listener();

        this.obs.getSocketRaw().on('SourceMuteStateChanged', handler);
        this.obs.getSocketRaw().on('ConnectionOpened', connectHandler);
      },
      removeChangeListener: () => {
        this.obs
          .getSocketRaw()
          .removeListener('SourceMuteStateChanged', handler);
        this.obs
          .getSocketRaw()
          .removeListener('ConnectionOpened', connectHandler);
      },
    };
  }

  private async invoke(source: string): Promise<void> {
    const muted = await this.getState(source);
    await (await this.obs.getSocket()).send('SetMute', {
      source,
      mute: !muted,
    });
  }

  private async getState(source: string): Promise<boolean> {
    return this.obs
      .getSocket()
      .then((s) => s.send('GetMute', { source }))
      .then((o) => o.muted)
      .catch(() => false);
  }
}
import { iupdate } from '../../iupdate'
import { RecordClass } from '../Record'
import { Column, Entity, PrimaryColumn } from '../typeorm'
import { Field, InputType, ObjectType } from './helpers'

@InputType()
export class CategoryInput {
  @Field({ nullable: true }) name?: string
  @Field({ nullable: true }) amount?: number
}

@ObjectType()
@Entity({ name: 'categories' })
export class Category extends RecordClass<Category.Props> {
  @PrimaryColumn() @Field() id: string
  @Column() @Field() name: string
  @Column() @Field() amount: number
}

export namespace Category {
  export interface Props extends Pick<CategoryInput, keyof CategoryInput> { }

  export type Query = iupdate.Query<Props>
}
import FixedU128 from './fixed_u128';

test('fromNatural 10', () => {
    expect(FixedU128.fromNatural(10)).toStrictEqual(new FixedU128(10 * 10 ** 18));
});

test('fromParts 10', () => {
    expect(FixedU128.fromParts(10)).toStrictEqual(new FixedU128(10));
});

test('from_rational 10 / 5', () => {
    expect(FixedU128.fromRational(10, 5)).toStrictEqual(FixedU128.fromRational(20, 10));
});

test('FixedU128(10) * FixedU128(20)', () => {
    const a = FixedU128.fromNatural(10);
    const b = FixedU128.fromNatural(20);
    expect(a.mul(b)).toStrictEqual(new FixedU128(200 * FixedU128.PRECISION));
});

test('FixedU128(10) + FixedU128(20)', () => {
    const a = FixedU128.fromNatural(10);
    const b = FixedU128.fromNatural(20);
    expect(a.add(b)).toStrictEqual(new FixedU128(30 * FixedU128.PRECISION));
});

test('FixedU128(10) - FixedU128(20)', () => {
    const a = FixedU128.fromNatural(10);
    const b = FixedU128.fromNatural(20);
    expect(a.sub(b)).toStrictEqual(new FixedU128(-10 * FixedU128.PRECISION));
});

test('FixedU128(10) / FixedU128(20)', () => {
    const a = FixedU128.fromNatural(10);
    const b = FixedU128.fromNatural(20);
    expect(a.div(b)).toStrictEqual(new FixedU128(0.5 * FixedU128.PRECISION));
});

test('FixedU128(10) toString is 10', () => {
    const a = FixedU128.fromNatural(10);
    ex


          result: defaultResult,
          error: e,
          ready: true,
          busy: false,
        })
      })
  }, [fn, set, defaultResult])
  const reset = useCallback(
    () =>
      set({
        ready: false,
        busy: false,
        result: defaultResult,
        error: null,
      }),
    [set, defaultResult],
  )
  useMountEffect(() => {
    if (immediate) {
      trigger()
    }
  })
  return {
    ready,
    busy,
    result,
    error,
    trigger,
    reset,
  }
}
import { SubmissionPublisher } from './SubmissionPublisher';
import { UserToken } from '../../shared/types';
import { LearningObjectAdapter } from '../../LearningObjects/adapters/LearningObjectAdapter';
import { ResourceError, ResourceErrorReason } from '../../shared/errors';
import { LearningObject } from '../../shared/entity';

/**
 * deleteSubmission removes a submitted Learning Object from access by
 * reviewers, curators, editors, or admins.
 *
 * getLearningObjectSummary checks that the Learning Object
 * exists and that the requester has one of author, admin, or editor
 * privilege. The returned working copy Learning Object is
 * then used to validate that the provided request structure is valid
 * by checking the author id against the given userId.
 * If no errors are thrown, then the Learning Object submission
 * is deleted.
 *
 * @param {
 *    publisher: SubmissionPublisher,
 *    learningObjectId: string,
 *    userId: string,
 *    user: UserToken
 * }
 */
export async function deleteSubmission(params: {
  publisher: SubmissionPublisher;
  learningObjectId: string;
  authorUsername: string;
  user: UserToken;
}): Promise<void> {
  const LearningObjectGateway = LearningObjectAdapter.getInstance();
  const learningObject = await LearningObjectGateway.getLearningObjectSummary({
    id: params.learningObjectId,
    requester: params.user,
  });
  const isReleased = learningObject.status === LearningObject.Status.RELEASED;
  if (learningObject.author.username !== params.authorUsername) {
    throw new ResourceError(
      `User with username ${params.authorUsername} does not own Learning Object with id of ${params.learningObjectId}`,
      ResourceErrorReason.BAD_REQUEST,
    );
  }
  if (!isReleased)
    await params.publisher.deleteSubmission(params.learningObjectId);
}
import { PipeTransform, Pipe } from '@angular/core';
import { List } from '../../models/list.model';

@Pipe({
    name: 'listFilter'
})

export class ListFilterPipe implements PipeTransform {
    transform(lists: List[], searchText: string): List[] {
        if (!lists || !searchText) {
            return lists
        }

        return lists.filter(list => list.title.toLocaleLowerCase().indexOf(searchText.toLocaleLowerCase()) !== -1)
    }
}function getLargesNumber(arr: Array<number>): number {
    let result :number=0;
    for(let index :number = 0; index <  arr.length; index++) {
        if(result < arr[index]) {
            result = arr[index];
        }
    }

    return result;
}

let score: Array<number>  = [1,2,3,4,5,6];
let highestScore: number = getLargesNumber(score);

import { camelToSpaces } from './camel-to-spaces';

describe('camelToSpaces', () => {
  it('should


omponentImpl.isSelected)
    }

    override val isModified
        get() = currentValue != componentImpl.isSelected

    override fun apply() {
        currentValue = componentImpl.isSelected
    }

    override fun reset() {
        componentImpl.isSelected = currentValue
    }

    override fun readString(string: String) {
        currentValue = string.toBoolean()
    }
}

typealias BooleanValue = SimpleValue<Boolean>

fun BooleanValue.toggle() = updateStoredValue { !it }
/*
 * FXGL - JavaFX Game Library. The MIT License (MIT).
 * Copyright (c) AlmasB (almaslvl@gmail.com).
 * See LICENSE for details.
 */

package com.almasb.fxgl.entity

import javafx.geometry.Point2D
import javafx.geometry.Point3D

/**
 * Specifies data used to spawn a particular type of entity.
 *
 * @author Almas Baimagambetov (almaslvl@gmail.com)
 */
open class SpawnData
@JvmOverloads constructor(
        val x: Double = 0.0,
        val y: Double = 0.0,
        val z: Double = 0.0) {

    constructor(position: Point2D) : this(position.x, position.y)
    constructor(position: Point3D) : this(position.x, position.y, position.z)

    val data = hashMapOf<String, Any>()

    fun put(key: String, value: Any): SpawnData {
        data.put(key, value)
        return this
    }

    @Suppress("UNCHECKED_CAST")
    fun <T> get(key: String): T {
        val value = data.get(key) ?: throw IllegalArgumentException("Key $key has no associated value!")

        return value as T
    }

    fun hasKey(key: String): Boolean = data.containsKey(key)
}/*
 * FXGL - JavaFX Game Library. The MIT License (MIT).
 * Copyright (c) AlmasB (almaslvl@gmail.com).
 * See LICENSE for details.
 */

package com.almasb.fxgl.entity

import com.almasb.fxgl.core.Disposable
import java.util.function.Consumer

/**
 * A group of entities of particular types.
 * The group always contains active entities and listens
 * for changes in the game world.
 *
 * @author Almas Baimagambetov (almaslvl@gmail.com)
 */
class EntityGroup(
        private val world: GameWorld,
        initialEntities: List<Entity>,
        vararg entityTypes: Enum<*>

) : EntityWorldListener, Disposable {

    private val types: List<Enum<*>> = entityTypes.toList()

    private val entities = ArrayList<Entity>(initialEntities)
    private val addList = ArrayList<Entity>()
    private val removeList = ArrayList<Entity>()

    /**
     * @return shallow copy of the entities list (new list)
     */
    val entitiesCopy: List<Entity>
        get(): List<Entity> {
            update()
            return entities.filter { it.isActive }
        }

    val size: Int
        get() = entitiesCopy.size

    init {
        world.addWorldListener(this)
    }

    fun forEach(action: (Entity) -> Unit) {
        entitiesCopy.forEach(action)
    }

    fun forEach(action: Consumer<Entity>) {
        entitiesCopy.forEach(action)
    }

    private fun update() {
        entities.addAll(addList)
        entities.removeAll(removeList)
        addList.clear()
        removeList.clear()
    }

    @Suppress("UNCHECKED_CAST")
    override fun onEntityAdded(entity: Entity) {
        if (types.any { entity.isType(it) }) {
            addList.add(entity)
        }
    }

    @Suppress("UNCHECKED_CAST")
    override fun onEntityRemoved(entity: Entity) {
        if (types.any { entity.isType(it) }) {
            removeList.add(entity)
        }
    }

    override fun dispose() {
        world.removeWorldListener(this)

        entities.clear()
        addList.clear()
        removeList.clear()


, %xmm1
	movss	-31 * SIZE(AO), %xmm0
	addss	%xmm1, %xmm8
	movss	-30 * SIZE(BO), %xmm1

	addq	$1 * SIZE, AO
	addq	$2 * SIZE, BO
	decq	%rax
	jg	.L157
	ALIGN_4

.L158:
	mulss	%xmm7, %xmm8

#ifndef TRMMKERNEL
	addss	(CO1), %xmm8
#endif

	movss	%xmm8,  (CO1)

#if (defined(TRMMKERNEL) &&  defined(LEFT) &&  defined(TRANSA)) || \
    (defined(TRMMKERNEL) && !defined(LEFT) && !defined(TRANSA))
	movq	K, %rax
	subq	KKK, %rax
	salq	$BASE_SHIFT, %rax
	leaq	(AO, %rax, 1), AO
	leaq	(BO, %rax, 2), BO
#endif

#if defined(TRMMKERNEL) && defined(LEFT)
	addq	$1, KK
#endif
	ALIGN_4

.L999:
	movq	%rbx, %rsp

	movq	  0(%rsp), %rbx
	movq	  8(%rsp), %rbp
	movq	 16(%rsp), %r12
	movq	 24(%rsp), %r13
	movq	 32(%rsp), %r14
	movq	 40(%rsp), %r15

#ifdef WINDOWS_ABI
	movq	 48(%rsp), %rdi
	movq	 56(%rsp), %rsi
	movups	 64(%rsp), %xmm6
	movups	 80(%rsp), %xmm7
	movups	 96(%rsp), %xmm8
	movups	112(%rsp), %xmm9
	movups	128(%rsp), %xmm10
	movups	144(%rsp), %xmm11
	movups	160(%rsp), %xmm12
	movups	176(%rsp), %xmm13
	movups	192(%rsp), %xmm14
	movups	208(%rsp), %xmm15
#endif

	addq	$STACKSIZE, %rsp
	ret

	EPILOGUE


ertia_sqrt,
        0.0
    );
}

#[test]
fn rotation_is_unlocked_if_component_is_removed() {
    let mut app = test_app();

    let entity = app.world.spawn((
        GlobalTransform::default(),
        Body::Sphere { radius: 10.0 },
        RotationConstraints::lock(),
    ));

    app.update();

    app.world.remove_one::<RotationConstraints>(entity).unwrap();

    app.update();

    let bodies = app.resources.get::<RigidBodySet>().unwrap();

    assert!(
        bodies
            .get(app.world.get::<BodyHandle>(entity).unwrap().rigid_body())
            .unwrap()
            .effective_world_inv_inertia_sqrt
            > 0.0
    );
}
fn main() {
    /*println!("cargo:rustc-env=PYTHON_SYS_EXECUTABLE=python3.8");
    println!("cargo:rust-cfg=CARGO_CFG_CARGO_CFG_TARGET_FAMILY=unix");*/

    /*println!("cargo:rustc-cfg=freebsd12");
    println!("cargo:rustc-cfg=python_38=\"yes\"");
    println!("cargo:rustc-cfg=build={:?}", "noice");
    println!("cargo:rustc-env=STD_ENV_ARCH={}", "noice");*/
    // println!("cargo:rustc-env=python_version=\"3.8\"");
    // println!("cargo:rerun-if-changed=lib");
}<reponame>tmokenc/tomoka-rs
use crate::commands::prelude::*;
use crate::storages::RawEventList;
use crate::Result;
use crate::traits::ChannelExt;
use colorful::Colorful;
use lazy_static::lazy_static;
use log::info;
use mp3_duration;
use rand::prelude::*;
use regex::Regex;
use serenity::model::event::Event;
use serenity::model::id::{ChannelId, EmojiId, MessageId, UserId};
use serenity::model::misc::EmojiIdentifier;
// use serenity::voice::{ffmpeg_optioned, AudioSource, Bitrate};
use songbird::Bitrate;
use std::collections::HashMap;
use std::io::BufReader;
use std::path::{Path, PathBuf};
use std::time::Duration;
use tokio::sync::Mutex;

type TmqCollect = Mutex<HashMap<ChannelId, HashMap<UserId, TmqCollector>>>;

lazy_static! {
    static ref TOUHOU_VERSION: HashMap<String, u64> = {
        futures::executor::block_on(async {
            use std::fs::File;
            let config = crate::read_config().await;
            let file = File::open(&config.tmq.as_ref().unwrap().emoji).unwrap();
            drop(config);
            let reader = BufReader::new(file);

            serde_json::from_reader(reader).unwrap()
        })
    };
    static ref TMQ_COLLECTOR: TmqCollect = Mutex::new(HashMap::new());
}

#[derive(Debug)]
struct TmqCollector {
    message_id: MessageId,
    answer: String,
}

#[command]
#[owners_only]
#[only_in(guilds)]
#[aliases("tmq", "touhoumusicquiz")]
/// The unfinished TouhouMusicQuiz game
/// Try to guess which touhou version that contains the song currently playing
async fn touhou_music_quiz(ctx: &Context, msg: &Message) -> CommandResult {
    let guild_id = msg.guild_id.unwrap();

    if let Some(channel) = is_playing(&ctx, guild_id).await {
        let to_say = format!("I'm current playing on channel <#{}>", channel.0);
        msg.channel_id.say(&ctx, to_say).await?;
        return Ok(());
    }

    let voice_channel = match get_user_voice_channel(&ct


-->

getParent

public final CBORWriteContext getParent()

Specified by:

getParent in class com.fasterxml.jackson.core.JsonStreamContext

getCurrentName

public final String getCurrentName()

Specified by:

getCurrentName in class com.fasterxml.jackson.core.JsonStreamContext

hasCurrentName

public boolean hasCurrentName()

Overrides:

hasCurrentName in class com.fasterxml.jackson.core.JsonStreamContext

clearAndGetParent

public CBORWriteContext clearAndGetParent()

Method that can be used to both clear the accumulated references
 (specifically value set with setCurrentValue(Object))
 that should not be retained, and returns parent (as would
 getParent() do). Typically called when closing the active
 context when encountering JsonToken.END_ARRAY or
 JsonToken.END_OBJECT.

getDupDetector

public com.fasterxml.jackson.core.json.DupDetector getDupDetector()

writeFieldName

public boolean writeFieldName(String name)
                       throws com.fasterxml.jackson.core.JsonProcessingException


/// The window, with the maximum value normalized to 1 (though the value 1
/// does not appear if `M` is even and `sym` is True).
///
/// # Notes
/// Flat top windows are used for taking accurate measurements of signal
/// amplitude in the frequency domain, with minimal scalloping error from the
/// center of a frequency bin to its edges, compared to others.  This is a
/// 5th-order cosine window, with the 5 terms optimized to make the main lobe
/// maximally flat.
///
/// # References
/// 1. "scipy.signal.windows.flattop". https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.windows.flattop.html#scipy.signal.windows.flattop. Retrieved 2019-07-15.
///
/// # Examples
/// ```dart
/// import 'package:scidart/src/numdart/numdart.dart';
/// import 'package:scidart/scidart/signal/signal.dart';
/// var M = 10;
/// var w = flattop(M);
/// ```
Array flattop(int M, {bool sym = true}) {
  var a =
      Array([0.21557895, 0.41663158, 0.277263158, 0.083578947, 0.006947368]);
  return generalCosine(M, a, sym: sym);
}
import 'package:scidart/scidart.dart';

import '../../../../numdart.dart';

/// Compute the 1D cross-correlation of 2 complex signals
/// - [input] : input signal
/// - [kernel] : kernel signal that will convolve with input
/// - [fast] : optional parameter default false,
/// if true, compute convolution using FFT
/// if false (default), compute convolution using numerical definition
///
/// # References
/// 1. "enhancement: add cross-correlation". https://github.com/scidart/scidart/issues/20. Retrieved 2021-02-01.
/// 2. "Scipy correlate". https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.correlate.html. Retrieved 2021-02-03.
/// 3. "Cross-correlation". https://en.wikipedia.org/wiki/Cross-correlation. Retrieved 2021-02-03.
///
/// # Examples
/// ```dart
/// var xi = ArrayComplex([
///   Complex(real: 1, imaginary: 1),
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 0, imaginary: 0)
/// ]);
/// var yi = ArrayComplex([
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 0, imaginary: 0),
///   Complex(real: 1, imaginary: 1)
/// ]);
///
/// print(correlateComplex(xi, yi));
///
/// /* output:
/// ArrayComplex([
///   Complex(real: 2.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0),
///   Complex(real: 0.0, imaginary: 0.0)]
/// )
/// */
/// ```
ArrayComplex correlateComplex(ArrayComplex input, ArrayComplex kernel) {
  return convolutionComplex(
      input, arrayComplexConjugate(arrayComplexReverse(kernel))


          .thenAnswer((_) async => Right(purchaseHistoryByYearAndMonth));

      // Act
      final result = await getAllPurchaseHistoryByMonthUseCase
          .call(yearAndMonthParamsToGetPurchaseHistory);

      // Assert
      expect(result, Right(purchaseHistoryByYearAndMonth));
    },
  );

  test(
    'should return a Failure when the get all purchase history by month process fails',
    () async {
      // Arrange
      final failure = FirebaseFailure(
        errorMessage: 'Get all purchase history by month failed',
      );
      when(mockPurchaseRepository.getAllPurchaseHistoryByMonth(
              yearAndMonthParamsToGetPurchaseHistory))
          .thenAnswer((_) async => Left(failure));

      // Act
      final result = await getAllPurchaseHistoryByMonthUseCase
          .call(yearAndMonthParamsToGetPurchaseHistory);

      // Assert
      expect(result, Left(failure));
    },
  );
}
import '../../presentation/blocs/theme/theme_cubit.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

import '../constants/colors.dart';
import '../utils/helper.dart';

class AppBarTitleWidget extends StatelessWidget {
  final String title;

  const AppBarTitleWidget({
    super.key,
    required this.title,
  });

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ThemeCubit, ThemeState>(
      buildWhen: (previous, current) => previous.themeMode != current.themeMode,
      builder: (context, state) {
        final isDarkMode = Helper.checkIsDarkMode(context, state.themeMode);

        return SizedBox(
          height: Helper.isLandscape(context)
              ? Helper.screeHeight(context) * 0.15
              : Helper.screeHeight(context) * 0.065,
          child: Text(
            title,
            style: TextStyle(
              fontSize: 24,
              fontWeight: FontWeight.bold,
              color: isDarkMode ? AppColors.textFifth : AppColors.textPrimary,
            ),
          ),
        );
      },
    );
  }
}
import '../utils/helper.dart';
import '../../presentation/blocs/theme/theme_cubit.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

import '../constants/colors.dart';
import 'package:flutter/material.dart';

class InputFieldTitleWidget extends StatelessWidget {
  final String title;

  const InputFieldTitleWidget({
    super.key,
    required this.title,
  });

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ThemeCubit, ThemeState>(
      buildWhen: (previous, current) => previous.themeMode != current.themeMode,
      builder: (context, state) {
        final isDarkMode = Helper.checkIsDarkMode(context, state.themeMode);

        return Padding(
          padding: const EdgeInsets.only(bottom: 5.0),
          child: Text(
            title,
            style: TextStyle(
              fontSize: 14,
              fontWeight: FontWeight.w600,
              color: isDarkMode
                  ? AppColors.textSecondary
                  : AppColors.textPrimary.withValues(alpha: 0.8),
            ),
          ),
        );
      },
    );
  }
}
const firebaseMessagingScope = [
  "https://www.googleapis.com/auth/userinfo.email",
  "https://www.googleapis.com/auth/firebase.database",
  "https://www.googleapis.com/auth/firebase.messaging",
];

// ! IMPORTANT: Please update the "firebaseServiceAccountJson" values with your Firebase servi


RARY = require('./_library');
var wksExt = require('./_wks-ext');
var defineProperty = require('./_object-dp').f;
module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
};

},{"./_global":"../../node_modules/core-js/modules/_global.js","./_core":"../../node_modules/core-js/modules/_core.js","./_library":"../../node_modules/core-js/modules/_library.js","./_wks-ext":"../../node_modules/core-js/modules/_wks-ext.js","./_object-dp":"../../node_modules/core-js/modules/_object-dp.js"}],"../../node_modules/core-js/modules/_enum-keys.js":[function(require,module,exports) {
// all enumerable object keys, includes symbols
var getKeys = require('./_object-keys');
var gOPS = require('./_object-gops');
var pIE = require('./_object-pie');
module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;
  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;
    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  } return result;
};

},{"./_object-keys":"../../node_modules/core-js/modules/_object-keys.js","./_object-gops":"../../node_modules/core-js/modules/_object-gops.js","./_object-pie":"../../node_modules/core-js/modules/_object-pie.js"}],"../../node_modules/core-js/modules/es6.symbol.js":[function(require,module,exports) {

'use strict';
// ECMAScript 6 symbols shim
var global = require('./_global');
var has = require('./_has');
var DESCRIPTORS = require('./_descriptors');
var $export = require('./_export');
var redefine = require('./_redefine');
var META = require('./_meta').KEY;
var $fails = require('./_fails');
var shared = require('./_shared');
var setToStringTag = require('./_set-to-string-tag');
var uid = require('./_uid');
var wks = require('./_wks');
var wksExt = require('./_wks-ext');
var wksDefine = require('./_wks-define');
var enumKeys = require('./_enum-keys');
var isArray = require('./_is-array');
var anObject = require('./_an-object');
var isObject = require('./_is-object');
var toIObject = require('./_to-iobject');
var toPrimitive = require('./_to-primitive');
var createDesc = require('./_property-desc');
var _create = require('./_object-create');
var gOPNExt = require('./_object-gopn-ext');
var $GOPD = require('./_object-gopd');
var $DP = require('./_object-dp');
var $keys = require('./_object-keys');
var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('s


#if defined(_AIX)
  // clang-format off
#define DEFINE_LIBUNWIND_FUNCTION(name)                                        \
  .globl name[DS] SEPARATOR                                                    \
  .globl .name SEPARATOR                                                       \
  .align 4 SEPARATOR                                                           \
  .csect name[DS], CSECT_ALIGN SEPARATOR                                       \
  .vbyte VBYTE_LEN, .name SEPARATOR                                            \
  .vbyte VBYTE_LEN, TOC[TC0] SEPARATOR                                         \
  .vbyte VBYTE_LEN, 0 SEPARATOR                                                \
  .csect .text[PR], 2 SEPARATOR                                                \
.name:
  // clang-format on
#else
#define DEFINE_LIBUNWIND_FUNCTION(name)                                        \
  .globl SYMBOL_NAME(name) SEPARATOR                                           \
  HIDDEN_SYMBOL(SYMBOL_NAME(name)) SEPARATOR                                   \
  SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR                                  \
  PPC64_OPD1                                                                   \
  SYMBOL_NAME(name):                                                           \
  PPC64_OPD2                                                                   \
  AARCH64_BTI
#endif

#if defined(__arm__)
#if !defined(__ARM_ARCH)
#define __ARM_ARCH 4
#endif

#if defined(__ARM_ARCH_4T__) || __ARM_ARCH >= 5
#define ARM_HAS_BX
#endif

#ifdef ARM_HAS_BX
#define JMP(r) bx r
#else
#define JMP(r) mov pc, r
#endif
#endif /* __arm__ */

#if defined(__powerpc__)
#define PPC_LEFT_SHIFT(index) << (index)
#endif

#endif /* UNWIND_ASSEMBLY_H */