RelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
    }

    @Test
    void testJoinHintWithMultiJoinAndFirstSideAsBuildSide2() {
        String sql =
                "select /*+ %s(T1, T2) */* from T1, T2, T3 where T1.a1 = T2.a2 and T2.b2 = T3.b3";

        verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
    }

    @Test
    void testJoinHintWithMultiJoinAndSecondThirdSideAsBuildSides1() {
        String sql =
                "select /*+ %s(T2, T3) */* from T1, T2, T3 where T1.a1 = T2.a2 and T1.b1 = T3.b3";

        verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
    }

    @Test
    void testJoinHintWithMultiJoinAndSecondThirdSideAsBuildSides2() {
        String sql =
                "select /*+ %s(T2, T3) */* from T1, T2, T3 where T1.a1 = T2.a2 and T2.b2 = T3.b3";

        verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
    }

    @Test
    void testJoinHintWithMultiJoinAndFirstThirdSideAsBuildSides() {
        String sql =
                "select /*+ %s(T1, T3) */* from T1, T2, T3 where T1.a1 = T2.a2 and T2.b2 = T3.b3";

        verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint()));
    }

    @Test
    void testJoinHintWithUnknownTable() {
        String sql = "select /*+ %s(T99) */* from T1 join T2 on T1.a1 = T2.a2";

        assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
                .isInstanceOf(ValidationException.class)
                .hasMessageContaining(
                        "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
                        "T99", getTestSingleJoinHint());
    }

    @Test
    void testJoinHintWithUnknownTableNameMixedWithValidTableNames1() {
        String sql = "select /*+ %s(T1, T99) */* from T1 join T2 on T1.a1 = T2.a2";

        assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
                .isInstanceOf(ValidationException.class)
                .hasMessageContaining(
                        "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
                        "T99", getTestSingleJoinHint());
    }

    @Test
    void testJoinHintWithUnknownTableNameMixedWithValidTableNames2() {
        String sql = "select /*+ %s(T1, T99, T2) */* from T1 join T2 on T1.a1 = T2.a2";

        assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))
                .isInstanceOf(ValidationException.class)
                .hasMessageContaining(
                        "The options of following hints cannot match the name of input tables or views: \n`%s` in `%s`",
                        "T99", getTestSingleJoinHint());
    }

    @Test
    void testJoinHintWithMultiUnknownTableNamesMixedWithValidTableNames() {
        String sql = "select /*+ %s(T1, T99, T98) */* from T1 join T2 on T1.a1 = T2.a2";

        assertThatThrownBy(() -> verifyRelPlanByCustom(String.format(sql, getTestSingleJoinHint())))


rtante devido aos regimes de bloqueio díspares (e inconsistentes) em todo o mundo.

A segunda abordagem é bloquear solicitações de conexão individuais para um nome de domínio restrito. Quando um usuário ou cliente deseja visitar um site, uma conexão é iniciada do cliente para um nome de servidor, ou seja, o nome de domínio. Se uma rede ou dispositivo no caminho for capaz de observar o nome do servidor, a conexão pode ser encerrada. Ao contrário do DNS, não há nenhum mecanismo para comunicar ao usuário que o acesso ao nome do servidor foi bloqueado ou por quê.

A terceira abordagem é bloquear o acesso a um endereço de IP onde o nome de domínio pode ser encontrado. Seria como bloquear a entrega de todas as correspondências para um endereço físico. Imagine, por exemplo, que esse endereço é um arranha-céu com seus muitos ocupantes não relacionados e independentes. A interrupção da entrega de correspondência no endereço do arranha-céu causa danos colaterais, afetando invariavelmente todas as partes naquele endereço. Os endereços de IP funcionam da mesma maneira.

Notavelmente, o endereço de IP é a única das três opções que não possui anexo ao nome de domínio. O nome de domínio do site não é necessário para roteamento e entrega de pacotes de dados; na verdade, é totalmente ignorado. Um site pode estar disponível em qualquer endereço de IP ou mesmo em vários endereços de IP simultaneamente. E o conjunto de endereços de IP em que um site está pode mudar a qualquer momento. O conjunto de endereços de IP não pode ser conhecido definitivamente consultando o DNS, que pode retornar qualquer endereço válido a qualquer momento por qualquer motivo, desde 1995.

A ideia de que um endereço representa uma identidade é um anátema para o design da internet, porque a dissociação entre endereço e nome está profundamente enraizada nos padrões e protocolos da internet, conforme explicado a seguir.

A internet é um conjunto de protocolos, não uma política ou perspectiva

Muitas pessoas ainda deduzem, incorretamente, que um endereço de IP representa um único site. Afirmamos anteriormente que a associação entre nomes e endereços é compreensível, visto que os primeiros componentes conectados da internet apareciam como um computador, uma interface, um endereço e um nome. Essa associação um-para-um era um artefato do ecossistema no qual o protocolo da internet foi implantado e atendia às necessidades da época.

Apesar da prática de nomenclatura um-para-um do início da internet, sempre foi possível atribuir mais de um nome a um servidor (ou "host"). Por exemplo, um servidor era (e ainda é) frequentemente configurado com nomes para refletir suas ofertas de serviço, como mail.example.com e www.example.com, mas eles compartilhavam um nome de domínio base. Havia poucos motivos para ter nomes de domínio completamente diferentes até


))
				Expect(rs.Name).To(Equal(lib.Functions[0].Name))
				Expect(rs.Duration > 0).To(BeTrue())

				close(started)
			})
		})

		Describe("SlowLogGet", func() {
			It("returns slow query result", func() {
				const key = "slowlog-log-slower-than"

				old := adapter.ConfigGet(ctx, key).Val()
				adapter.ConfigSet(ctx, key, "0")
				defer adapter.ConfigSet(ctx, key, old[key])

				err := adapter.SlowLogReset(ctx).Err()
				Expect(err).NotTo(HaveOccurred())

				adapter.Set(ctx, "test", "true", 0)

				result, err := adapter.SlowLogGet(ctx, -1).Result()
				Expect(err).NotTo(HaveOccurred())
				Expect(len(result)).NotTo(BeZero())
			})
		})
	}

	Describe("keys", func() {

		It("should Expire", func() {
			ttl := adapter.Cache(time.Hour).TTL(ctx, "nonexistent_key")
			Expect(ttl.Err()).NotTo(HaveOccurred())
			Expect(ttl.Val()).To(Equal(time.Duration(-2)))

			set := adapter.Set(ctx, "key", "Hello", 0)
			Expect(set.Err()).NotTo(HaveOccurred())
			Expect(set.Val()).To(Equal("OK"))

			expire := adapter.Expire(ctx, "key", 10*time.Second)
			Expect(expire.Err()).NotTo(HaveOccurred())
			Expect(expire.Val()).To(Equal(true))

			ttl = adapter.Cache(time.Hour).TTL(ctx, "key")
			Expect(ttl.Err()).NotTo(HaveOccurred())
			Expect(ttl.Val()).To(Equal(10 * time.Second))

			set = adapter.Set(ctx, "key", "Hello World", 0)
			Expect(set.Err()).NotTo(HaveOccurred())
			Expect(set.Val()).To(Equal("OK"))

			time.Sleep(time.Millisecond * 100)

			ttl = adapter.Cache(time.Hour).TTL(ctx, "key")
			Expect(ttl.Err()).NotTo(HaveOccurred())
			Expect(ttl.Val()).To(Equal(time.Duration(-1)))
		})

		It("should PExpire", func() {
			set := adapter.Set(ctx, "key", "Hello", 0)
			Expect(set.Err()).NotTo(HaveOccurred())
			Expect(set.Val()).To(Equal("OK"))

			expiration := 900 * time.Millisecond
			pexpire := adapter.PExpire(ctx, "key", expiration)
			Expect(pexpire.Err()).NotTo(HaveOccurred())
			Expect(pexpire.Val()).To(Equal(true))

			ttl := adapter.Cache(time.Hour).TTL(ctx, "key")
			Expect(ttl.Err()).NotTo(HaveOccurred())
			Expect(ttl.Val()).To(Equal(time.Second))

			pttl := adapter.Cache(time.Hour).PTTL(ctx, "key")
			Expect(pttl.Err()).NotTo(HaveOccurred())
			Expect(pttl.Val()).To(BeNumerically("~", expiration, 100*time.Millisecond))
		})

		It("should PExpireAt", func() {
			set := adapter.Set(ctx, "key", "Hello", 0)
			Expect(set.Err()).NotTo(HaveOccurred())
			Expect(set.Val()).To(Equal("OK"))

			expiration := 900 * time.Millisecond
			pexpireat := adapter.PExpireAt(ctx, "key", time.Now().Add(expiration))
			Expect(pexpireat.Err()).NotTo(HaveOccurred())
			Expect(pexpireat.Val()).To(Equal(true))

			ttl := adapter.Cache(time.Hour).TTL(ctx, "key")
			Expect(ttl.Err()).NotTo(HaveOccurred())
			Expect(ttl.Val()).To(Equal(time.Second))

			pttl := adapter.Cache(time.Hour).PTTL(ctx, "key")
			Expect(


r difference = newAccessList.Union(oldTags).Except(newAccessList.Intersect(oldTags)).ToHashSet();
        var privilegedPerms = _accessReader.FindAccessTags(privilegedId!.Value).ToHashSet();

        if (!difference.IsSubsetOf(privilegedPerms))
        {
            _sawmill.Warning($"User {ToPrettyString(uid)} tried to modify permissions they could not give/take!");

            return;
        }

        if (!oldTags.ToHashSet().IsSubsetOf(privilegedPerms))
        {
            _sawmill.Warning($"User {ToPrettyString(uid)} tried to modify permissions when they do not have sufficient access!");
            _popupSystem.PopupEntity(Loc.GetString("access-overrider-cannot-modify-access"), player, player);
            _audioSystem.PlayPvs(component.DenialSound, uid);

            return;
        }

        var addedTags = newAccessList.Except(oldTags).Select(tag => "+" + tag).ToList();
        var removedTags = oldTags.Except(newAccessList).Select(tag => "-" + tag).ToList();

        _adminLogger.Add(LogType.Action, LogImpact.High,
            $"{ToPrettyString(player):player} has modified {ToPrettyString(accessReaderEnt.Value):entity} with the following allowed access level holders: [{string.Join(", ", addedTags.Union(removedTags))}] [{string.Join(", ", newAccessList)}]");

        _accessReader.SetAccesses(accessReaderEnt.Value, newAccessList);

        var ev = new OnAccessOverriderAccessUpdatedEvent(player);
        RaiseLocalEvent(component.TargetAccessReaderId, ref ev);
    }

    /// <summary>
    /// Returns true if there is an ID in <see cref="AccessOverriderComponent.PrivilegedIdSlot"/> and said ID satisfies the requirements of <see cref="AccessReaderComponent"/>.
    /// </summary>
    /// <remarks>
    /// Other code relies on the fact this returns false if privileged Id is null. Don't break that invariant.
    /// </remarks>
    private bool PrivilegedIdIsAuthorized(EntityUid uid, AccessOverriderComponent? component = null)
    {
        if (!Resolve(uid, ref component))
            return true;

        if (_accessReader.GetMainAccessReader(uid, out var accessReader))
            return true;

        var privilegedId = component.PrivilegedIdSlot.Item;
        return privilegedId != null && _accessReader.IsAllowed(privilegedId.Value, uid, accessReader);
    }
}


/pub/2012%20Pres%20results%20by%202012%20CDs/[FIPS].csv CD_2010A CD_2010A PRES12_DEM PRES12_REP\n"
 					+"COPY FEATURE PRES12_DEM PRES12_D50\n"
 					+"COPY FEATURE PRES12_REP PRES12_R50\n"
 					+"RESCALE ELECTIONS\n"
 					+"SAVE\n"

 					//+"RESCALE ELECTIONS\n"
 					//+"SAVE\n"

 					//+"OPEN "CD113/tl_rd13_[FIPS]_cd113.shp"
 					+"SET ELECTION COLUMNS PRES12_D50 PRES12_R50\n"
 					+"SET DISTRICTS COLUMN CD113FP\n"
 					+"SET DISTRICTS COLUMN CD_2010A\n"
 					+"SET WEIGHT DESCRIPTIVE 0.50\n"
 					//+"EXPORT PIE\n"
 					+"EXPORT NATIONAL\n"
 					+"EXPORT STATS\n"
 					+"EXPORT PIE\n"
 					+"CLEAN\n"
 					+"EXIT\n"
 					+"EXIT\n";

            sb.append(s);
 			//appendExportHare(sb,i);

 			//appendExportEmbedded(sb,i);
 			//sb.append("COPY FEATURE CD_FV CD_FV2\n");
 			//sb.append("SAVE\n");
			//sb.append("LOAD "+i+ " 2010 2012\n");
			//newscript(sb,i);
			//import2010(sb,i);
			/*
			sb.append("COPY FEATURE PRES12_DEM PRES12_D50\n");
			sb.append("COPY FEATURE PRES12_REP PRES12_R50\n");
			sb.append("SET ELECTION COLUMNS PRES12_D50 PRES12_R50\n");
			sb.append("RESCALE ELECTIONS\n");
			sb.append("SAVE\n");
			sb.append("LOAD "+i+ " 2010 2012\n");

			appendExport(sb);
			sb.append("IMPORT DEMOGRAPHICS\n");
			if( Download.apportionments[i] == 1) {
				sb.append("COPY FEATURE CD_BD CD_2000\n");
				sb.append("COPY FEATURE CD_BD CD_NOW\n");
			}
			sb.append("SAVE\n");
			sb.append("EXIT\n");
			sb.append("EXIT\n");
			sb.append("LOAD "+i+ " 2010 2012\n");
			appendExport(sb);

			sb.append("IMPORT CY2000_DISTRICTS\n");
			sb.append("COPY FEATURE CD_NOW CD_2000\n");
			sb.append("SAVE\n");
			sb.append("EXIT\n");
			sb.append("EXIT\n");
			appendExport2000(sb);

			if( Download.apportionments[i] == 1) {
				sb.append("COPY FEATURE CD_BD CD_2000\n");
				sb.append("COPY FEATURE CD_BD CD_NOW\n");
			}
			//sb.append("IMPORT DEMOGRAPHICS\n");

			sb.append("SET DISTRICTS COLUMN CD_2000\n");
			sb.append("EXPORT\n");
			sb.append("EXPORT NATIONAL\n");

			sb.append("EXIT\n");
			sb.append("EXIT\n");

			sb.append("SAVE\n");
			sb.append("LOAD "+i+ " 2010 2012\n");
			appendExport(sb);
			*/

			//sb.append("COPY FEATURE CD_FV CD_FV2\n");
			if( i != 25 && i != 17) {
			//sb.append("COPY FEATURE PRES12_DEM PRES12_D50\n");
			//sb.append("COPY FEATURE PRES12_REP PRES12_R50\n");
			//sb.append("SET ELECTION COLUMNS PRES12_D50 PRES12_R50\n");
			//sb.append("RESCALE ELECT


// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Threading;
using NuGet.Configuration;
using NuGet.Credentials;
using NuGet.VisualStudio;
using WebProxy = System.Net.WebProxy;

namespace NuGet.PackageManagement.VisualStudio
{
    public class VisualStudioCredentialProvider : ICredentialProvider
    {
        private readonly Lazy<JoinableTaskFactory> _joinableTaskFactory;
        private readonly IVsWebProxy _webProxyService;

        public VisualStudioCredentialProvider(IVsWebProxy webProxyService)
            : this(webProxyService, new Lazy<JoinableTaskFactory>(() => NuGetUIThreadHelper.JoinableTaskFactory))
        {
        }

        internal VisualStudioCredentialProvider(IVsWebProxy webProxyService, Lazy<JoinableTaskFactory> joinableTaskFactory)
        {
            if (webProxyService == null)
            {
                throw new ArgumentNullException(nameof(webProxyService));
            }

            if (joinableTaskFactory == null)
            {
                throw new ArgumentNullException(nameof(joinableTaskFactory));
            }

            _webProxyService = webProxyService;
            _joinableTaskFactory = joinableTaskFactory;
            Id = $"{typeof(VisualStudioCredentialProvider).Name}_{Guid.NewGuid()}";
        }

        /// <summary>
        /// Unique identifier of this credential provider
        /// </summary>
        public string Id { get; }

        /// <summary>
        /// Returns an ICredentials instance that the consumer would need in order
        /// to properly authenticate to the given Uri.
        /// </summary>
        public async Task<CredentialResponse> GetAsync(
            Uri uri,
            IWebProxy proxy,
            CredentialRequestType type,
            string message,
            bool isRetry,
            bool nonInteractive,
            CancellationToken cancellationToken)
        {

            if (uri == null)
            {
                throw new ArgumentNullException(nameof(uri));
            }

            // Capture the original proxy before we do anything
            // so that we can re-set it once we get the credentials for the given Uri.
            IWebProxy originalProxy = null;
            if (proxy != null)
            {
                // If the current Uri should be bypassed then don't try to get the specific
                // proxy but simply capture the one that is given to us
                if (proxy.IsBypassed(uri))
                {
                    originalProxy = proxy;
                }
                // If the current Uri is not bypassed then get a valid proxy for the Uri
                // and make sure that we have the credentials also.
                else
                {
                    originalProxy = new WebProxy(proxy.GetProxy(uri));
                    originalProxy.Credentials = proxy.Credentials == null
                        ? null : proxy.Credentials.GetCredential


.profileImagePath;
    }
    if (this.profileImageType != null) {
      data['profileImageType'] = this.profileImageType;
    }
    if (this.name != null) {
      data['name'] = this.name;
    }
    if (this.nameFontWeight != null) {
      data['nameFontWeight'] = this.nameFontWeight;
    }
    if (this.nameFontStyle != null) {
      data['nameFontStyle'] = toJsonFontStyle(this.nameFontStyle);
    }
    if (this.nameFontColor != null) {
      data['nameFontColor'] = toJsonColor(this.nameFontColor!);
    }
    if (this.email != null) {
      data['email'] = this.email;
    }
    if (this.emailFontWeight != null) {
      data['emailFontWeight'] = this.emailFontWeight;
    }
    if (this.emailFontStyle != null) {
      data['emailFontStyle'] = toJsonFontStyle(this.emailFontStyle);
    }
    if (this.emailFontColor != null) {
      data['emailFontColor'] = toJsonColor(this.emailFontColor!);
    }
    if (this.iconColor != null) {
      data['iconColor'] = toJsonColor(this.iconColor!);
    }
    if (this.iconSize != null) {
      data['iconSize'] = this.iconSize;
    }
    if (this.labelFontWeight != null) {
      data['labelFontWeight'] = this.labelFontWeight;
    }
    if (this.labelFontStyle != null) {
      data['labelFontStyle'] = toJsonFontStyle(this.labelFontStyle);
    }
    if (this.labelFontSize != null) {
      data['labelFontSize'] = this.labelFontSize;
    }
    if (this.labelFontColor != null) {
      data['labelFontColor'] = toJsonColor(this.labelFontColor!);
    }
    if (this.drawerItems.isNotEmpty) {
      data['drawerItems'] = this.drawerItems;
    }
    return data;
  }

  /// Drawer Items
  List<FlutterVizDrawerItemModel> getFlutterVizDrawerItems() {
    List<FlutterVizDrawerItemModel> flutterVizDrawerItems = [];
    drawerItems.forEach((element) {
      flutterVizDrawerItems.add(FlutterVizDrawerItemModel(icon: IconData(element!.icon!.codePoint!, fontFamily: "MaterialIcons"), label: element.label));
    });
    return flutterVizDrawerItems;
  }

  Widget getLeftDrawerWidget({BuildContext? context}) {
    return GestureDetector(
      child: FlutterVizDrawer(
        elevation: elevation ?? DEFAULT_DRAWER_ELEVATION,
        headerColor: headerColor ?? COMMON_BG_COLOR,
        profileImage: (profileImageType == ImageTypeAsset ? NetworkImage(profileImagePath ?? DEFAULT_DRAWER_ASSET_IMAGE) : NetworkImage(profileImagePath ?? DEFAULT_DRAWER_NETWORK_IMAGE)),
        name: name ?? DUMMY_USER_NAME,
        nameStyle: TextStyle(
          fontWeight: getFontWeight(nameFontWeight) ?? FontWeight.normal,
          fontStyle: nameFontStyle ?? FontStyle.normal,
          fontSize: 16,
          color: nameFontColor ?? DEFAULT_DRAWER_FONT_COLOR,
        ),
        email: email ?? DUMMY_USER_EMAIL,
        emailStyle: TextStyle(
          fontWeight: getFontWeight(emailFontWeight) ?? FontWeight.normal,
          fontStyle: emailFontStyle ?? FontStyle.normal,
          fontSize: 14,
          color: emailFontColor ?? DEFAULT_DRAWER_FONT_COLOR,
        ),
        drawerItems: getFlutterVizDrawerItems(),
        iconColor: iconColor ?? DEFAULT_ICON_COLOR,
        iconSize: iconSize ?? DEFAULT_ICON_SIZE,
        labelStyle: TextStyle(
          fontWei


, opponent) = Player::random_set();
		Board { pieces_mask: 0, black_mask: 0,
			current_player, opponent }
	}

	/**
	 * Any Ascacou position may quite simply be described by a PGN
	 * like notation. For instance:
	 *
	 *       a  b  c  d  e
	 *     1    W  B  W
	 *     2       B
	 *     3    W  W
	 *     4
	 *     5
	 *
	 * Could be refered to as `c2 B3 B1 C3 c1 D1`. This strings
	 * gives us the information of move order, and the case tells
	 * the color (white is upper cased).
	 *
	 * If we don't care about move order we can also have a FEN
	 * like reference: `1wbw/2b/1ww/5/5`. Note that we are starting
	 * from the top-left corner.
	 *
	 * An ascacou position must also be aware of which tiles the
	 * current player has. Since we are able to represent tiles
	 * with number between 0 and 15, we can represent a set of
	 * 8 tiles with 8 hexadecimal numbers. Those shall be the
	 * tiles of the current player, their opponent will have
	 * the 8 numbers left.
	 *
	 * So a full FEN may look like: 1wbw/2b/1ww/5/5 03478bcd.
	 *
	 * A Tile number is made by looking at the black pieces in a tile
	 * representation. These black pieces will represent bits that are
	 * on in our number, in the order indicated below.
	 *
	 *     1 2
	 *     3 4
	 */
	pub fn from_fen(fen: &str) -> Result<Board, &'static str> {
		let mut black_mask = 0u64;
		let mut white_mask = 0u64;

		let mut x = 0; // Column
		let mut y = 0; // Row

		let mut chars = fen.chars().peekable();

		// Board part.
		while let Some(chr) = chars.next() {
			match chr {
				' ' if y < 4 => return Err("Not enough rows"),
				' ' => break,
				'/' if y == 4 => return Err("Too much rows"),
				'/' if x > 5 => return Err("Too much cols"),
				'/' => { y += 1; x = 0 }
				'1' => x += 1,
				'2' => x += 2,
				'3' => x += 3,
				'4' => x += 4,
				'5' => x += 5,
				'b' => {black_mask |= Board::position_mask(x, y); x += 1},
				'w' => {white_mask |= Board::position_mask(x, y); x += 1},
				_ => return Err("invalid character")
			}
		}

		if chars.peek().is_none() {
			return Err("Incomplete FEN")
		}

		// Tiles part.

		let mut tiles = [0; 8];
		let mut i = 0;
		while let Some(chr) = chars.next() {
			match chr.to_digit(16) {
				// No need for a guard there, digit may not be greater than 15.
				Some(digit) => tiles[i] = digit as u8,
				None => return Err("invalid character")
			}
			if i > 7 { return Err("Too much tiles") }
			i += 1;
		}

		if i < 7 { return Err("Not enough tiles") }

		let (current_player, opponent) = Player::from_current_tiles(tiles);

		Ok(Board { pieces_mask: (black_mask | white_mask),
			black_mask, current_player, opponent })
	}

	pub fn fen(&self) -> String {
		let mut idx = 0;
		let mut str = String::new();
		for y in 0..5 {
			if y > 0 { str.push_str("/") }
			for x in 0..5 {
				if Board::position_mask(x, y) & self.pieces_mask == 0 {
					idx += 1;
					continue
				}

				if


    [LOG_FLOPPY, "FLOP"],
    [LOG_SERIAL, "SERI"],
    [LOG_RTC, "RTC"],
    [LOG_ACPI, "ACPI"],
    [LOG_APIC, "APIC"],
    [LOG_NET, "NET"],
    [LOG_VIRTIO, "VIO"],
    [LOG_9P, "9P"],
    [LOG_SB16, "SB16"]
];

var

// flags register bitflags
/** @const */ FLAG_CARRY = 1,
/** @const */ FLAG_PARITY = 4,
/** @const */ FLAG_ADJUST = 16,
/** @const */ FLAG_ZERO = 64,
/** @const */ FLAG_SIGN = 128,
/** @const */ FLAG_TRAP = 256,
/** @const */ FLAG_INTERRUPT = 512,
/** @const */ FLAG_DIRECTION = 1024,
/** @const */ FLAG_OVERFLOW = 2048,
/** @const */ FLAG_IOPL = 1 << 12 | 1 << 13,
/** @const */ FLAG_NT = 1 << 14,
/** @const */ FLAG_RF = 1 << 16,
/** @const */ FLAG_VM = 1 << 17,
/** @const */ FLAG_AC = 1 << 18,
/** @const */ FLAG_VIF = 1 << 19,
/** @const */ FLAG_VIP = 1 << 20,
/** @const */ FLAG_ID = 1 << 21,

/**
 * default values of reserved flags bits
 * @const
 */
FLAGS_DEFAULT = 1 << 1,

/** @const */ REG_EAX = 0,
/** @const */ REG_ECX = 1,
/** @const */ REG_EDX = 2,
/** @const */ REG_EBX = 3,
/** @const */ REG_ESP = 4,
/** @const */ REG_EBP = 5,
/** @const */ REG_ESI = 6,
/** @const */ REG_EDI = 7,

/** @const */ REG_ES = 0,
/** @const */ REG_CS = 1,
/** @const */ REG_SS = 2,
/** @const */ REG_DS = 3,
/** @const */ REG_FS = 4,
/** @const */ REG_GS = 5,

/** @const */ REG_LDTR = 7; // local descriptor table register

var
    /**
     * The minimum number of bytes that can be memory-mapped
     * by one device.
     *
     * @const
     */
    MMAP_BLOCK_BITS = 17,
    /** @const */
    MMAP_BLOCK_SIZE = 1 << MMAP_BLOCK_BITS,
    /** @const */
    MMAP_MAX = 0x100000000;

/** @const */
var CR0_PG = 1 << 31;
/** @const */
var CR4_PAE = 1 << 5;

// https://github.com/qemu/seabios/blob/14221cd86eadba82255fdc55ed174d401c7a0a04/src/fw/paravirt.c#L205-L219

/** @const */ var FW_CFG_SIGNATURE = 0x00;
/** @const */ var FW_CFG_ID = 0x01;
/** @const */ var FW_CFG_RAM_SIZE = 0x03;
/** @const */ var FW_CFG_NB_CPUS = 0x05;
/** @const */ var FW_CFG_MAX_CPUS = 0x0F;
/** @const */ var FW_CFG_NUMA = 0x0D;
/** @const */ var FW_CFG_FILE_DIR = 0x19;

/** @const */ var FW_CFG_CUSTOM_START = 0x8000;
// This value is specific to v86, choosen to hopefully not collide with other indexes
/** @const */ var FW_CFG_FILE_START = 0xC000;

/** @const */ var FW_CFG_SIGNATURE_QEMU = 0x554D4551;

// See same constant in jit.rs
/** @const */
var WASM_TABLE_SIZE = 900;

/** @const */
var WASM_TABLE_OFFSET = 1024;

/** @const */
var MIXER_CHANNEL_LEFT = 0;
/** @const */
var MIXER_CHANNEL_RIGHT = 1;
/** @const */
var MIXER_CHANNEL_BOTH = 2;
/** @const */
var MIXER_SRC_MASTER = 0;
/** @const */
var MIXER_SRC_PCSPEAKER = 1;
/** @const */
var MIXER_SRC_DAC = 2;
"use strict";

/** @const */


from django.urls import (
    include,
    path,
)

urlpatterns = [
    path("", include("apps.core.urls")),
    path("api/accounts/v1/", include("rest_registration.api.urls")),
    path("api/admin/v1/", include("apps.users.api.v1.urls")),
]


-expect-error
      const num: string | undefined = safe<ArrayType>(value).a[0].x.$;
      expect(num).toBeFalsy();
    });
  });

  describe('indexed keys', () => {
    it('prefers named prop types', () => {
      const num: unknown | undefined = safe<UnionTypeWithIndex>(value).a.$;
      expect(num).toBeFalsy();
    });

    it('allows indexed fields', () => {
      const num: number | undefined = safe<UnionTypeWithIndexToNumber>(value).z.$;
      expect(num).toBeFalsy();
    });

    it('join both sides of union', () => {
      // @ts-expect-error
      const num: number | undefined = safe<UnionTypeWithIndexToNumber>(value).b.$;
      expect(num).toBeFalsy();
    });
  });

  it('rejects mismatching type from nested union', () => {
    // @ts-expect-error
    const num: number | undefined = safe<NestedUnion>(value).b.x.$;
    expect(num).toBeFalsy();
  });

  it('rejects missing type from union', () => {
    // @ts-expect-error
    const num: number | undefined = safe<NestedUnion>(value).b.r.$;
    expect(num).toBeFalsy();
  });

  it('makes union of leaf types', () => {
    const num: string | number | undefined = safe<SharingUnion>(value).a.$;
    expect(num).toBeFalsy();
  });

  it('narrows to union value', () => {
    const num: number | undefined = safe<UnionType>(value).a.$;
    expect(num).toBeFalsy();
  });

  it("rejects mismatching type from union'", () => {
    // @ts-expect-error
    const num: number | undefined = safe<UnionType>(value).b.$;
    expect(num).toBeFalsy();
  });

  it('makes union of leaf types', () => {
    const num: 'toot' | 'doot' | undefined = safe<SharingUnionLiteral>(value).a.$;
    expect(num).toBeFalsy();
  });
});
import { Collection } from './Collection';
import { Disposable } from './Disposable';

export interface CollectionObserverDelegate<TKey, TItem> {
  onAdd?([key, item]: [TKey, TItem]): void;
  onDelete?([key, item]: [TKey, TItem]): void;
  onUpdate?([key, item]: [TKey, TItem]): void;
}

export class CollectionObserver<TKey, TItem> implements Disposable {
  private delegate: CollectionObserverDelegate<TKey, TItem>;

  readonly collection: Collection<TKey, TItem>

  constructor(collection: Collection<TKey, TItem>,
    delegate: CollectionObserverDelegate<TKey, TItem>) {
    this.collection = collection;
    this.delegate = delegate;

    if (this.delegate.onAdd) {
      collection.onAdd.addListener(this.delegate.onAdd);
    }
    if (this.delegate.onDelete) {
      collection.onDelete.addListener(this.delegate.onDelete);
    }
    if (this.delegate.onUpdate) {
      collection.onUpdate.addListener(this.delegate.onUpdate);
    }
  }

  dispose() {
    if (this.delegate.onAdd) {
      this.collection.onAdd.removeListener(this.delegate.onAdd);
    }
    if (this.delegate.onDelete) {
      this.collection.onDelete.removeListener(this.delegate.onDelete);
    }
    if (this.delegate.onUpdate) {
      this.collection.onUpdate.removeListener(this.delegate.onUpdate);
    }
  }
}
import {
  DBSchema, IDBPDatabase,
  openDB, deleteDB,
} from 'idb';
import {
  unionWith, uniqWith, remove, isEqual, some, pick, keyBy, mergeW


93.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z"],"app-store-ios":[448,512,[],"f370","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z"],"cc-discover":[576,512,[],"f1f2","M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-


status = when {
            element.selectFirst(".fa-flag-alt") != null -> SManga.COMPLETED
            element.selectFirst(".fa-arrow-right") != null -> SManga.ONGOING
            else -> SManga.UNKNOWN
        }
    }

    override fun popularMangaNextPageSelector() = "ul.pagination a.page-link[rel=next]"

    override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException()

    override fun latestUpdatesSelector() = throw UnsupportedOperationException()

    override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException()

    override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException()

    override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
        val url = baseUrl.toHttpUrl().newBuilder().apply {
            if (query.isNotEmpty()) {
                addPathSegment("search")
                addQueryParameter("keyword", query)
            } else {
                addPathSegments("browse/title")
            }

            filters.ifEmpty { getFilterList() }
                .filterIsInstance<UrlFilter>()
                .forEach { it.addToUrl(this) }

            if (page > 1) {
                addQueryParameter("ttlpage", page.toString())
            }
        }.build()

        return GET(url, headers)
    }

    override fun searchMangaSelector() = popularMangaSelector()

    override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element)

    override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()

    override fun mangaDetailsParse(document: Document): SManga {
        val alternativeTitles = document.selectFirst("h3#manga_title + p")!!
            .textNodes()
            .filterNot { it.text().isBlank() }
            .joinToString { it.text() }

        return SManga.create().apply {
            title = document.selectFirst("h3#manga_title")!!.text()
            author = document.select("h3:has(.fa-pen-nib) a").joinToString { it.text() }
            description = buildString {
                append("Alternative Titles: ")
                appendLine(alternativeTitles)
                appendLine()
                appendLine(document.selectFirst("h3#manga_title ~ p:eq(2)")!!.text())
            }
            genre = buildList {
                document.select("h3:has(.fa-layer-group) a")
                    .map { it.text() }
                    .let { addAll(it) }
                document.select(".fa-pepper-hot").size
                    .takeIf { it > 0 }
                    ?.let { add("🌶".repeat(it)) }
                document.select(".tags-btn button")
                    .map { it.text() }
                    .let { addAll(it) }
                document.selectFirst("span:has(.fa-book-spells, .fa-book)")?.let { add(it.text()) }
                document.selectFirst("span:has(.fa-user-friends)")?.let { add(it.text()) }
            }
                .joinToString()
            status = when {
                document.selectFirst(".fa-flag-alt") != null -> SManga.COMPLETED
                document.selectFirst(".fa-arrow-right") != null -> SManga.ONGOING
                else -> SManga.UNKNOWN
            }
            thumbnail_url = document.selectFirst("img.img-thumbnail")?.absUrl("data-src")
        }
    }

    override fun chapterListSelector() = "ul.ep_ul li.list-group-item"

    override fun chapterFromElement(element: Element) = SChapter.create().apply {
        element.selectFirst("h3 p")!!.let {
            val id = it.id().substringAfter("epi_title_")

            url = "/r


nse.Headers.Remove(HeaderNames.XPoweredBy);

            context.Response.Headers.ContentSecurityPolicy = ContentSecurityPolicy;

            context.Response.Headers["Cross-Origin-Embedder-Policy"] = "unsafe-none";
            context.Response.Headers["Cross-Origin-Opener-Policy"] = "same-origin";
            context.Response.Headers["Cross-Origin-Resource-Policy"] = "same-origin";

            if (context.Request.IsHttps)
            {
                context.Response.Headers["Expect-CT"] = "max-age=1800";
            }

            context.Response.Headers["Permissions-Policy"] = "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()";
            context.Response.Headers["Referrer-Policy"] = "no-referrer-when-downgrade";
            context.Response.Headers.XContentTypeOptions = "nosniff";
            context.Response.Headers["X-Download-Options"] = "noopen";

            if (!context.Response.Headers.ContainsKey(HeaderNames.XFrameOptions))
            {
                context.Response.Headers.XFrameOptions = "DENY";
            }

            context.Response.Headers.XXSSProtection = "1; mode=block";

            return Task.CompletedTask;
        });

        return next(context);
    }
}


/*
 * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved.
 * Copyright (C) 2004-2006 Red Hat, Inc.  All rights reserved.
 *
 * This copyrighted material is made available to anyone wishing to use,
 * modify, copy, or redistribute it subject to the terms and conditions
 * of the GNU General Public License version 2.
 */

#ifndef __BMAP_DOT_H__
#define __BMAP_DOT_H__

#include "inode.h"

struct inode;
struct gfs2_inode;
struct page;

/**
 * gfs2_write_calc_reserv - calculate number of blocks needed to write to a file
 * @ip: the file
 * @len: the number of bytes to be written to the file
 * @data_blocks: returns the number of data blocks required
 * @ind_blocks: returns the number of indirect blocks required
 *
 */

static inline void gfs2_write_calc_reserv(const struct gfs2_inode *ip,
					  unsigned int len,
					  unsigned int *data_blocks,
					  unsigned int *ind_blocks)
{
	const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode);
	unsigned int tmp;

	BUG_ON(gfs2_is_dir(ip));
	*data_blocks = (len >> sdp->sd_sb.sb_bsize_shift) + 3;
	*ind_blocks = 3 * (sdp->sd_max_height - 1);

	for (tmp = *data_blocks; tmp > sdp->sd_diptrs;) {
		tmp = DIV_ROUND_UP(tmp, sdp->sd_inptrs);
		*ind_blocks += tmp;
	}
}

extern int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page);
extern int gfs2_block_map(struct inode *inode, sector_t lblock,
			  struct buffer_head *bh, int create);
extern int gfs2_extent_map(struct inode *inode, u64 lblock, int *new,
			   u64 *dblock, unsigned *extlen);
extern int gfs2_setattr_size(struct inode *inode, u64 size);
extern void gfs2_trim_blocks(struct inode *inode);
extern int gfs2_truncatei_resume(struct gfs2_inode *ip);
extern int gfs2_file_dealloc(struct gfs2_inode *ip);
extern int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset,
				     unsigned int len);
extern int gfs2_map_journal_extents(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd);
extern void gfs2_free_journal_extents(struct gfs2_jdesc *jd);

#endif /* __BMAP_DOT_H__ */


1));
		assertEquals(ptV1, view.axesVert.getModel().getPtAt(0));
		assertEquals(ptV2, view.axesVert.getModel().getPtAt(1));
		assertNotEquals(pathTicksBefore, view.pathTicks.getElements());
	}

	@Test
	@Override
	void testChangeGridStartY() {
		model.setGridStartY(model.getGridStartY() - 1d);
		WaitForAsyncUtils.waitForFxEvents();
		assertEquals(ptH1, view.axesHoriz.getModel().getPtAt(0));
		assertEquals(ptH2, view.axesHoriz.getModel().getPtAt(1));
		assertNotEquals(ptV1, view.axesVert.getModel().getPtAt(0));
		assertEquals(ptV2, view.axesVert.getModel().getPtAt(1));
		assertNotEquals(pathTicksBefore, view.pathTicks.getElements());
	}

	@Override
	@Test
	void testChangeOriginX() {
		final List<String> textBefore = view.getLabels().getChildren().stream().map(c -> ((Text) c).getText()).collect(Collectors.toList());
		model.setOriginX(model.getOriginX() + 1d);
		WaitForAsyncUtils.waitForFxEvents();
		assertNotEquals(textBefore, view.getLabels().getChildren().stream().map(c -> ((Text) c).getText()).collect(Collectors.toList()));
	}

	@Override
	@Test
	void testChangeOriginY() {
		final List<String> textBefore = view.getLabels().getChildren().stream().map(c -> ((Text) c).getText()).collect(Collectors.toList());
		model.setOriginX(model.getOriginY() + 1d);
		WaitForAsyncUtils.waitForFxEvents();
		assertNotEquals(textBefore, view.getLabels().getChildren().stream().map(c -> ((Text) c).getText()).collect(Collectors.toList()));
	}

	@Override
	@Test
	public void testOnTranslateX() {
		final double x = view.getTranslateX();
		model.translate(11d, 0d);
		assertEquals(x + 11d, view.getTranslateX(), 0.0000001);
	}

	@Override
	@Test
	public void testOnTranslateY() {
		final double y = view.getTranslateY();
		model.translate(0d, 13d);
		assertEquals(y + 13d, view.getTranslateY(), 0.0000001);
	}
}
package net.sf.latexdraw.model.impl;

import net.sf.latexdraw.HelperTest;
import net.sf.latexdraw.data.DoubleData;
import net.sf.latexdraw.data.EllData;
import net.sf.latexdraw.model.ShapeFactory;
import net.sf.latexdraw.model.api.shape.Circle;
import net.sf.latexdraw.model.api.shape.Ellipse;
import net.sf.latexdraw.model.api.shape.PositionShape;
import net.sf.latexdraw.model.api.shape.Rectangle;
import net.sf.latexdraw.model.api.shape.RectangularShape;
import net.sf.latexdraw.model.api.shape.Shape;
import org.junit.Test;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;

@RunWith(Theories.class)
public class TestEllipse implements HelperTest {
	@Theory
	public void testGetAB(@EllData final Ellipse shape, @DoubleData final double w, @DoubleData final double h,
						@DoubleData final double x, @DoubleData final double y) {
		assumeTrue(w > 0d);
		assumeTrue(h > 0d);

		shape.setPosition(x, y)


.RGBA_ASTC_10x8_Format=
37818;l.RGBA_ASTC_10x10_Format=37819;l.RGBA_ASTC_12x10_Format=37820;l.RGBA_ASTC_12x12_Format=37821;l.LoopOnce=2200;l.LoopRepeat=2201;l.LoopPingPong=2202;l.InterpolateDiscrete=2300;l.InterpolateLinear=2301;l.InterpolateSmooth=2302;l.ZeroCurvatureEnding=2400;l.ZeroSlopeEnding=2401;l.WrapAroundEnding=2402;l.TrianglesDrawMode=0;l.TriangleStripDrawMode=1;l.TriangleFanDrawMode=2;l.LinearEncoding=3E3;l.sRGBEncoding=3001;l.GammaEncoding=3007;l.RGBEEncoding=3002;l.LogLuvEncoding=3003;l.RGBM7Encoding=3004;
l.RGBM16Encoding=3005;l.RGBDEncoding=3006;l.BasicDepthPacking=3200;l.RGBADepthPacking=3201;l.TangentSpaceNormalMap=0;l.ObjectSpaceNormalMap=1;l.CubeGeometry=Kb;l.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new Xa(a,b,c,e,f,g)};l.LineStrip=0;l.LinePieces=1;l.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};l.MultiMaterial=function(a){void 0===a&&(a=[]);
console.warn("THREE.MultiMaterial has been removed. Use an Array instead.");a.isMultiMaterial=!0;a.materials=a;a.clone=function(){return a.slice()};return a};l.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Sb(a,b)};l.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Ec(a)};l.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Sb(a,b)};l.PointCloudMaterial=
function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Ha(a)};l.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Ha(a)};l.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Ha(a)};l.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new p(a,
b,c)};l.DynamicBufferAttribute=function(a,b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.");return(new F(a,b)).setDynamic(!0)};l.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");return new sc(a,b)};l.Uint8Attribute=function(a,b){console.warn("THREE.Uint


node->declare_parameter("mppic.model_dt", rclcpp::ParameterValue(0.1));
  node->declare_parameter("controller_frequency", rclcpp::ParameterValue(30.0));
  node->declare_parameter("mppic.batch_size", rclcpp::ParameterValue(1000));
  node->declare_parameter("mppic.time_steps", rclcpp::ParameterValue(50));
  auto costmap_ros = std::make_shared<nav2_costmap_2d::Costmap2DROS>(
    "dummy_costmap", "", true);
  std::string name = "test";
  ParametersHandler param_handler(node, name);
  rclcpp_lifecycle::State lstate;
  costmap_ros->on_configure(lstate);
  auto tf_buffer = std::make_shared<tf2_ros::Buffer>(node->get_clock());
  optimizer_tester.initialize(node, "mppic", costmap_ros, tf_buffer, &param_handler);

  // Test offsets are properly set based on relationship of model_dt and controller frequency
  // Also tests getting set model_dt parameter.
  EXPECT_THROW(optimizer_tester.setOffsetWrapper(1.0), std::runtime_error);
  EXPECT_NO_THROW(optimizer_tester.setOffsetWrapper(30.0));
  EXPECT_FALSE(optimizer_tester.getShiftControlSequence());
  EXPECT_NO_THROW(optimizer_tester.setOffsetWrapper(10.0));
  EXPECT_TRUE(optimizer_tester.getShiftControlSequence());
}

TEST(OptimizerTests, resetTests)
{
  auto node = std::make_shared<nav2::LifecycleNode>("my_node");
  OptimizerTester optimizer_tester;
  node->declare_parameter("controller_frequency", rclcpp::ParameterValue(30.0));
  node->declare_parameter("mppic.batch_size", rclcpp::ParameterValue(1000));
  node->declare_parameter("mppic.time_steps", rclcpp::ParameterValue(50));
  auto costmap_ros = std::make_shared<nav2_costmap_2d::Costmap2DROS>(
    "dummy_costmap", "", true);
  std::string name = "test";
  ParametersHandler param_handler(node, name);
  rclcpp_lifecycle::State lstate;
  costmap_ros->on_configure(lstate);
  auto tf_buffer = std::make_shared<tf2_ros::Buffer>(node->get_clock());
  optimizer_tester.initialize(node, "mppic", costmap_ros, tf_buffer, &param_handler);

  // Tests resetting the full state of all the functions after filling with garbage
  optimizer_tester.fillOptimizerWithGarbage();
  optimizer_tester.testReset();
}

TEST(OptimizerTests, FallbackTests)
{
  auto node = std::make_shared<nav2::LifecycleNode>("my_node");
  OptimizerTester optimizer_tester;
  node->declare_parameter("controller_frequency", rclcpp::ParameterValue(30.0));
  node->declare_parameter("mppic.batch_size", rclcpp::ParameterValue(1000));
  node->declare_parameter("mppic.time_steps", rclcpp::ParameterValue(50));
  node->declare_parameter("mppic.retry_attempt_limit", rclcpp::ParameterValue(2));
  auto costmap_ros = std::make_shared<nav2_costmap_2d::Costmap2DROS>(
    "dummy_costmap", "", true);
  std::string name = "test";
  ParametersHandler param_handler(node, name);
  rclcpp_lifecycle::State lstate;
  costmap_ros->on_configure(lstate);
  auto tf_buffer = std::make_shared<tf2_ros::Buffer>(node->get_clock());
  optimizer_tester.initialize(node, "mppic", costmap_ros, tf_buffer, &par


return nil
}

// isWellFormedMembershipEvent returns true if the event looks like a legitimate
// membership event.
func isWellFormedMembershipEvent(event *gomatrixserverlib.Event, roomID, userID string, origin gomatrixserverlib.ServerName) bool {
	if membership, err := event.Membership(); err != nil {
		return false
	} else if membership != gomatrixserverlib.Join {
		return false
	}
	if event.RoomID() != roomID {
		return false
	}
	if event.Origin() != origin {
		return false
	}
	if !event.StateKeyEquals(userID) {
		return false
	}
	return true
}

// PerformOutboundPeekRequest implements api.FederationInternalAPI
func (r *FederationInternalAPI) PerformOutboundPeek(
	ctx context.Context,
	request *api.PerformOutboundPeekRequest,
	response *api.PerformOutboundPeekResponse,
) error {
	// Look up the supported room versions.
	var supportedVersions []gomatrixserverlib.RoomVersion
	for version := range version.SupportedRoomVersions() {
		supportedVersions = append(supportedVersions, version)
	}

	// Deduplicate the server names we were provided but keep the ordering
	// as this encodes useful information about which servers are most likely
	// to respond.
	seenSet := make(map[gomatrixserverlib.ServerName]bool)
	var uniqueList []gomatrixserverlib.ServerName
	for _, srv := range request.ServerNames {
		if seenSet[srv] {
			continue
		}
		seenSet[srv] = true
		uniqueList = append(uniqueList, srv)
	}
	request.ServerNames = uniqueList

	// See if there's an existing outbound peek for this room ID with
	// one of the specified servers.
	if peeks, err := r.db.GetOutboundPeeks(ctx, request.RoomID); err == nil {
		for _, peek := range peeks {
			if _, ok := seenSet[peek.ServerName]; ok {
				return nil
			}
		}
	}

	// Try each server that we were provided until we land on one that
	// successfully completes the peek
	var lastErr error
	for _, serverName := range request.ServerNames {
		if err := r.performOutboundPeekUsingServer(
			ctx,
			request.RoomID,
			serverName,
			supportedVersions,
		); err != nil {
			logrus.WithError(err).WithFields(logrus.Fields{
				"server_name": serverName,
				"room_id":     request.RoomID,
			}).Warnf("Failed to peek room through server")
			lastErr = err
			continue
		}

		// We're all good.
		return nil
	}

	// If we reach here then we didn't complete a peek for some reason.
	var httpErr gomatrix.HTTPError
	if ok := errors.As(lastErr, &httpErr); ok {
		httpErr.Message = string(httpErr.Contents)
		// Clear the wrapped error, else serialising to JSON (in polylith mode) will fail
		httpErr.WrappedError = nil
		response.LastError = &httpErr
	} else {
		response.LastError = &gomatrix.HTTPError{
			Code:         0,
			WrappedError: nil,
			Message:      lastErr.Error(),
		}
	}

	logrus.Errorf(
		"failed to peek room %q through %d server(s): last error %s",
		request.RoomID, len(request.ServerNames), lastErr,
	)

	return lastErr
}

func (r *FederationInternalAPI) performOutboundPeekUsingServer(
	ctx context.Context,
	roomID string,
	serverName gomatrixserverlib.ServerName,
	supportedVersions []gomatrixserverlib.RoomVersion,
)


args
	movl	sp@(60),a0		| restore
	movl	a0,usp			|   user SP
	moveml	sp@+,#0x7FFF		| and all remaining registers
	addql	#6,sp			| pop SSP and align word
	rte
Lnosir:
	movl	sp@+,d0			| restore scratch register
Ldorte:
#else
rei:					| dummy Entry of rei
#endif
	rte				| real return

/*
 * Primitives
 */

#ifdef GPROF
#ifdef __GNUC__
#define	ENTRY(name) \
	.globl _/**/name; _/**/name: link a6,#0; jbsr mcount; unlk a6
#define ALTENTRY(name, rname) \
	ENTRY(name); jra rname+12
#else
#define	ENTRY(name) \
	.globl _/**/name; _/**/name: jbsr mcount
#define ALTENTRY(name, rname) \
	ENTRY(name); jra rname+6
#endif
#else
#define	ENTRY(name) \
	.globl _/**/name; _/**/name:
#define ALTENTRY(name, rname) \
	.globl _/**/name; _/**/name:
#endif

/*
 * non-local gotos
 */
ALTENTRY(savectx, _setjmp)
ENTRY(setjmp)
	movl	sp@(4),a0	| savearea pointer
	moveml	#0xFCFC,a0@	| save d2-d7/a2-a7
	movl	sp@,a0@(48)	| and return address
	moveq	#0,d0		| return 0
	rts

ENTRY(qsetjmp)
	movl	sp@(4),a0	| savearea pointer
	lea	a0@(40),a0	| skip regs we do not save
	movl	a6,a0@+		| save FP
	movl	sp,a0@+		| save SP
	movl	sp@,a0@		| and return address
	moveq	#0,d0		| return 0
	rts

ENTRY(longjmp)
	movl	sp@(4),a0
	moveml	a0@+,#0xFCFC
	movl	a0@,sp@
	moveq	#1,d0
	rts

	.globl	_getsfc, _getdfc
_getsfc:
	movc	sfc,d0
	rts
_getdfc:
	movc	dfc,d0
	rts

/*
 * Set processor priority level calls.  Most could (should) be replaced
 * by inline asm expansions.  However, SPL0 and SPLX require special
 * handling.  If we are returning to the base processor priority (SPL0)
 * we need to check for our emulated software interrupts.
 */

ENTRY(spl0)
	moveq	#0,d0
	movw	sr,d0			| get old SR for return
	movw	#PSL_LOWIPL,sr		| restore new SR
|	jra	Lsplsir
	rts

ENTRY(splx)
	moveq	#0,d0
	movw	sr,d0			| get current SR for return
	movw	sp@(6),d1		| g


css" title="Special:MyPage/monobook.css">monobook.css, not your monobook.js. Isarra has submitted a patch which should fix this on all wikis, but it hasn't been reviewed yet and I don't know how long it will take to be merged. Suffusion of Yellow (talk) 17:45, 28 June 2019 (UTC)

I don't have that subpage, but I'll create it and give it a try there. Thanks. -- BullRangifer (talk) 20:11, 28 June 2019 (UTC)

That worked instantly! -- BullRangifer (talk) 20:14, 28 June 2019 (UTC)

Reply to c-BullRangifer-2019-06-28T20:14:00.000Z-BullRangifer-2019-06-28T20:11:00.000Z

Reply to c-BullRangifer-2019-06-28T20:11:00.000Z-Suffusion_of_Yellow-2019-06-28T17:45:00.000Z

Reply to c-Suffusion_of_Yellow-2019-06-28T17:45:00.000Z-BullRangifer-2019-06-28T14:18:00.000Z

Reply to c-BullRangifer-2019-06-28T14:18:00.000Z-Redrose64-2019-06-28T11:05:00.000Z

Reply to c-Redrose64-2019-06-28T11:05:00.000Z-BullRangifer-2019-06-28T06:53:00.000Z

Reply to c-BullRangifer-2019-06-28T06:53:00.000Z-Killiondude-2019-06-28T03:23:00.000Z

Reply to c-Killiondude-2019-06-28T03:23:00.000Z-BullRangifer-2019-06-28T03:19:00.000Z

I've worked out why the hotspots are overwide and overlapping. Whilst looking at DuncanHill's (unrelated) Blackskin problem with that gadget enabled, I happened to hover over the alerts icons - and behold! the text links "Alerts (1)" or "Notices (1)" become visible. It is those textual items that are invisibly appearing in front of the desired links. So to get the bell's link, you need to be to the left of the "N" of "Notices (1)". --<a href="//en.wikipedia.org/wiki/User:Redrose64" title="User


ain_len: usize,
    pub sk: *const br_rsa_private_key,
    pub allowed_usages: cty::c_uint,
    pub irsacore: br_rsa_private,
    pub irsasign: br_rsa_pkcs1_sign,
}
#[doc = " \\brief A single-chain EC policy handler."]
#[doc = ""]
#[doc = " This policy context uses a single certificate chain, and an EC"]
#[doc = " private key. The context can be restricted to only signatures or"]
#[doc = " only key exchange."]
#[doc = ""]
#[doc = " Due to how TLS is defined, this context must be made aware whether"]
#[doc = " the server certificate was itself signed with RSA or ECDSA. The code"]
#[doc = " does not try to decode the certificate to obtain that information."]
#[doc = ""]
#[doc = " Apart from the first field (vtable pointer), its contents are"]
#[doc = " opaque and shall not be accessed directly."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct br_ssl_server_policy_ec_context {
    #[doc = " \\brief Pointer to vtable."]
    pub vtable: *const br_ssl_server_policy_class,
    pub chain: *const br_x509_certificate,
    pub chain_len: usize,
    pub sk: *const br_ec_private_key,
    pub allowed_usages: cty::c_uint,
    pub cert_issuer_key_type: cty::c_uint,
    pub mhash: *const br_multihash_context,
    pub iec: *const br_ec_impl,
    pub iecdsa: br_ecdsa_sign,
}
#[doc = " \\brief Class type for a session parameter cache."]
#[doc = ""]
#[doc = " Session parameters are saved in the cache with `save()`, and"]
#[doc = " retrieved with `load()`. The cache implementation can apply any"]
#[doc = " storage and eviction strategy that it sees fit. The SSL server"]
#[doc = " context that performs the request is provided, so that its"]
#[doc = " functionalities may be used by the implementation (e.g. hash"]
#[doc = " functions or random number generation)."]
pub type br_ssl_session_cache_class = br_ssl_session_cache_class_;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct br_ssl_session_cache_class_ {
    #[doc = " \\brief Context size (in bytes)."]
    pub context_size: usize,
    #[doc = " \\brief Record a session."]
    #[doc = ""]
    #[doc = " This callback should record the provided session parameters."]
    #[doc = " The `params` structure is transient, so its contents shall"]
    #[doc = " be copied into the cache. The session ID has been randomly"]
    #[doc = " generated and always has length exactly 32 bytes."]
    #[doc = ""]
    #[doc = " \\param ctx          session cache context."]
    #[doc = " \\param server_ctx   SSL server context."]
    #[doc = " \\param params       session parameters to save."]
    pub save: ::core::option::Option<
        unsafe extern "C" fn(
            ctx: *mut *const br_ssl_session_cache_class,
            server_ctx: *mut br_ssl_server_context,
            params: *const br_ssl_session_parameters,
        ),
    >,
    #[doc = " \\brief Lookup a session in the cache."]
    #[doc = ""]
    #[doc = " The session ID to lookup is in `params` and always has length"]
    #[doc = " exactly 32 bytes. If the session parameters are found in the"]
    #[doc = " cache, then the parameters shall be copied into the `params`"]
    #[doc = " structure. Returned value is 1


 paging)
        => _ef.Query<EmployeeBase, EfModel.Employee>(q => _getByArgsOnQuery?.Invoke(q, args) ?? q).WithPaging(paging).SelectResultWithResultAsync<EmployeeBaseCollectionResult, EmployeeBaseCollection>();

    /// <inheritdoc/>
    public Task<Result<Employee>> TerminateAsync(TerminationDetail value, Guid id) => DataInvoker.Current.InvokeAsync(this, (_, __) =>
    {
        return Result.Go(value).ThenAsAsync(v => TerminateOnImplementationAsync(v, id))
                     .Then(r => _events.PublishValueEvent(r, new Uri($"my/hr/employee/{r.Id}", UriKind.Relative), $"My.Hr.Employee", "Terminated"));
    }, new InvokerArgs { IncludeTransactionScope = true, EventPublisher = _events });

    /// <summary>
    /// Provides the <see cref="Employee"/> property and database column mapping.
    /// </summary>
    public partial class DbMapper : DatabaseMapperEx<Employee, DbMapper>
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="DbMapper"/> class.
        /// </summary>
        public DbMapper() => InheritMapper(EmployeeBaseData.DbMapper.Default);

        /// <inheritdoc />
        protected override void OnMapToDb(Employee value, DatabaseParameterCollection parameters, OperationTypes operationType)
        {
            parameters.AddParameter("AddressJson", ObjectToJsonConverter<Address>.Default.ConvertToDestination(value.Address));
            WhenAnyExceptCreate(operationType, () => parameters.AddParameter(parameters.Database.DatabaseColumns.RowVersionName, StringToBase64Converter.Default.ConvertToDestination(value.ETag)));
            ChangeLogExDatabaseMapper.Default.MapToDb(value.ChangeLog, parameters, operationType);
            OnMapToDbEx(value, parameters, operationType);
        }

        /// <inheritdoc />
        protected override void OnMapFromDb(DatabaseRecord record, Employee value, OperationTypes operationType)
        {
            value.Address = (Address?)ObjectToJsonConverter<Address>.Default.ConvertToSource(record.GetValue("AddressJson"));
            WhenAnyExceptCreate(operationType, () => value.ETag = (string?)StringToBase64Converter.Default.ConvertToSource(record.GetValue(record.Database.DatabaseColumns.RowVersionName)));
            value.ChangeLog = ChangeLogExDatabaseMapper.Default.MapFromDb(record, operationType);
            OnMapFromDbEx(record, value, operationType);
        }

        partial void OnMapToDbEx(Employee value, DatabaseParameterCollection parameters, OperationTypes operationType); // Enables the DbMapper.OnMapToDb to be extended.
        partial void OnMapFromDbEx(DatabaseRecord record, Employee value, OperationTypes operationType); // Enables the DbMapper.OnMapFromDb to be extended.
    }
}


ament7" hx-trigger="load changed delay:1400ms once" hx-get="/23/ornament/on/7" hx-swap="outerHTML">

                <button id="switch" hx-get="/23/star" hx-swap="outerHTML" hx-target="#star">
                    Light the star
                </button>

Merry Christmas!

/ Shuttle

Bonus task:

            <form hx-post="/23/lockfile" enctype="multipart/form-data" hx-target="#lockfilecanvas">
                <input type="file" name="lockfile" required>

                <button type="submit">Submit lockfile</button>
            </form>

<!doctype html>

  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>COMP6991 Physics Simulation</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">

      COMP6991 Physics Simulation

          <input onclick="set_speed(0)" class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1" checked>
          Pause

          <input onclick="set_speed(10)" class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2">
          1x Speed

          <input onclick="set_speed(5)" class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3">
          2x Speed

          <input onclick="set_speed(2)" class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio4" value="option4">
          5x Speed

    <svg id="my_svg" width="1280", height="2000">
    </svg>


文档变化处理过程中立即触发
        Timer(const Duration(milliseconds: 100), () {
          if (mounted) {
            _checkAndProcessSettingReferences();
          }
        });
      }

  }

  // 🎯 新增：检查是否仅为样式变化
  bool _isOnlyStyleChange(DocChange change) {
    try {
      // 检查变化是否只涉及格式化而不涉及文本插入/删除
      if (change.change.operations.every((op) {
        // 如果是retain操作且有attributes，说明是样式变化
        if (op.key == 'retain' && op.attributes != null) {
          return true;
        }
        // 如果是insert操作但插入的是空字符串且有attributes，也是样式变化
        if (op.key == 'insert' && op.data is String && (op.data as String).isEmpty && op.attributes != null) {
          return true;
        }
        return false;
      })) {
        return true;
      }
      return false;
    } catch (e) {
      AppLogger.w('SceneEditor', '检查样式变化失败', e);
      return false;
    }
  }

  // 添加防抖处理
  void _onTextChanged(String content) {

      // 🚫 生成期间不进行保存与过滤，等待用户"应用/丢弃"后再处理
      if (_isAIGenerating) {
        AppLogger.v('SceneEditor', '⏭ 生成中，跳过_onTextChanged: ${widget.sceneId}');
        return;
      }

      // 🚀 修复：避免在设定引用处理时触发保存
      if (_isProcessingSettingReferences) {
        AppLogger.v('SceneEditor', '🛑 设定引用处理中，跳过保存: ${widget.sceneId}');
        return;
      }

      // 🚫 如果文本内容未发生变化，直接跳过后续处理，防止重复保存
      final String currentPlainText = QuillHelper.deltaToText(content);
      if (currentPlainText == _lastSavedContent) {
        AppLogger.v('SceneEditor', '⏭ 文本内容与最后保存内容一致，跳过保存: ${widget.sceneId}');
        return;
      }

      // 🆕 新增：如果有隐藏文本，使用过滤后的内容进行保存
      if (AIGeneratedContentProcessor.hasAnyHiddenText(controller: widget.controller)) {
        AppLogger.v('SceneEditor', '🫥 检测到隐藏文本，使用过滤后的内容保存: ${widget.sceneId}');
        // 使用过滤掉隐藏文本的内容
        content = AIGeneratedContentProcessor.getVisibleDeltaJsonOnly(controller: widget.controller);
      }

      // 🚀 修复：现在接收的是Delta JSON格式，包含完整样式信息
      // 先提取纯文本用于字数统计和变化检测
      final plainText = currentPlainText;
      final wordCount = WordCountAnalyzer.countWords(plainText);

      // 判断是否为微小改动（基于纯文本比较）
      final bool isMinorChange = _isMinorTextChange(plainText);

      // 记录变动信息
      AppLogger.v('SceneEditor', '文本


HP的20倍大，所以大卫和比尔觉得我们肯定没法跟这样的对手竞争。

**14:18** - _Saron Yitbarek_
不过HP又不想流失客户，所以如果HP创建了一个新的计算机部门，确实没什么可值得称赞的，无论克莱多努力提升项目质量，HP始终坚持不去计算机市场分一杯羹，克莱最初对HP在计算机行业缺乏经验的担忧终于得到了证实。

**14:43** - _Chuck House_
我们公司内部没人懂这个，我们不可能直接把这东西丢给伏特计推销员然后告诉他：“这东西可厉害了。”他肯定会说：“嘿，谁知道自己需要这东西？而且他们为什么需要这个？哦天哪，看看这价格，你一定是疯了。”

**14:59** - _Saron Yitbarek_
最令克莱失望的其实是高层的态度，每当克莱想要提议建立软件部门时，休利特就会立马反驳他妄图建立什么“计算机帝国”并驳回他的请求。没过多久，当克莱为连锁酒店研发出了一款新电脑是，他不得不被迫终止项目，更糟糕的是，大卫.帕卡德在成为美国国防部副部长之后就去了五角大楼，我们去采访罗伊.克莱时他已经91岁了，但他还记得当帕卡德去了五角大楼以后，休利特就独自一人掌权，克莱在公司的地位一下子岌岌可危。

**15:46** - _Roy Clay_
大卫和休利特是合作伙伴，性格却截然相反，比尔.休利特是个种族主义者，他觉得黑人就应该什么也做不好，而大卫.帕卡德正相反，给我定个目标后就让我放手去做。当大卫.帕卡德去了五角大楼，就只剩比尔.休利特一个人，我对这个人没有丝毫敬意，以前不会现在也不会，我妻子曾经跟我说，“你为什么不辞职？”

**16:13** - _Saron Yitbarek_
克莱也确实这么做了，但不是每个人都希望罗伊.克莱离开。汤姆.珀金斯是罗伊在HP的同事，他也辞职去开了自己的风投公司——Kleiner Perkins Caufield & Byers，现在这家公司已经很有名气了，市值90亿元，但在当时，他还在募集他第一轮融资。虽然比尔.休利特没看出来，但汤姆从连锁酒店项


===================================

Gets the coordinate mapper.

Syntax
======

<colgroup>
<col width="100%" />
</colgroup>

C++

public:
HRESULT get_CoordinateMapper(
         ICoordinateMapper **coordinateMapper
)

#### Parameters

*coordinateMapper*
Type: ICoordinateMapper
[out] The coordinate mapper.

#### Return value

Type: HRESULT
Returns S\_OK if successful; otherwise, returns a failure code.

Requirements
============

**Header:** kinect.h
**Library:** kinect20.lib

IKinectSensor::Close Method
===========================

Gracefully cleans up running streams.

Syntax
======

<colgroup>
<col width="100%" />
</colgroup>

C++

public:
HRESULT Close(
         void
)

#### Parameters

**
Type: void
Does not return a value.

#### Return value

Type: HRESULT
Returns S\_OK if successful; otherwise, returns a failure code.

Requirements
============

**Header:** kinect.h
**Library:** kinect20.lib


ext-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right{float:right;margin-left:10px}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray{color:#999}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red{color:#c24f4a}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover{background-color:#f1f1f1}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after{content:"";display:table;clear:both}.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item{cursor:pointer;font-size:18px;padding:0 3px;display:inline-block}.w-e-text-container .w-e-panel-container .w-e-up-img-container{text-align:center}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn{display:inline-block;color:#999;cursor:pointer;font-size:60px;line-height:1}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover{color:#333}.w-e-text-container{position:relative}.w-e-text-container .w-e-progress{position:absolute;background-color:#1e88e5;bottom:0;left:0;height:1px}.w-e-text{padding:0 10px;overflow-y:scroll}.w-e-text h1,.w-e-text h2,.w-e-text h3,.w-e-text h4,.w-e-text h5,.w-e-text p,.w-e-text pre,.w-e-text table{margin:10px 0;line-height:1.5}.w-e-text ol,.w-e-text ul{margin:10px 0 10px 20px}.w-e-text blockquote{display:block;border-left:8px solid #d0e5f2;padding:5px 10px;margin:10px 0;line-height:1.4;font-size:100%;background-color:#f1f1f1}.w-e-text code{display:inline-block;background-color:#f1f1f1;border-radius:3px;padding:3px 5px;margin:0 3px}.w-e-text pre code{display:block}.w-e-text table{border-top:1px solid #ccc;border-left:1px solid #ccc}.w-e-text table td,.w-e-text table th{border-bottom:1px solid #ccc;border-right:1px solid #ccc;padding:3px 5px}.w-e-text table th{border-bottom:2px solid #ccc;text-align:center}.w-e-text img{cursor:pointer}.w-e-text img:hover{box-shadow:0 0 5px #333}@font-face{font-family:"socialshare";src:url("../fonts/iconfont.eot");src:url("../fonts/iconfont.eot?#iefix") format("embedded-opentype"),url("../fonts/iconfont.woff") format("woff"),url("../fonts/iconfont.ttf") format("truetype"),url("../fonts/iconfont.svg#iconfont") format("svg")}.social-share{font-family:"socialshare" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:0.2px;-moz-osx-font-smoothing:grayscale}.social-share *


bl func_801B0F30
/* 801B281C 001AE47C  7C 60 07 74 */	extsb r0, r3
/* 801B2820 001AE480  2C 00 00 01 */	cmpwi r0, 1
/* 801B2824 001AE484  40 82 00 14 */	bne lbl_801B2838
/* 801B2828 001AE488  7F E3 FB 78 */	mr r3, r31
/* 801B282C 001AE48C  38 80 FF F6 */	li r4, -10
/* 801B2830 001AE490  4B FC CA 15 */	bl func_8017F244
/* 801B2834 001AE494  7C 7F 1B 78 */	mr r31, r3
lbl_801B2838:
/* 801B2838 001AE498  39 61 00 20 */	addi r11, r1, 0x20
/* 801B283C 001AE49C  7F E3 FB 78 */	mr r3, r31
/* 801B2840 001AE4A0  48 01 49 3D */	bl _restgpr_29
/* 801B2844 001AE4A4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801B2848 001AE4A8  7C 08 03 A6 */	mtlr r0
/* 801B284C 001AE4AC  38 21 00 20 */	addi r1, r1, 0x20
/* 801B2850 001AE4B0  4E 80 00 20 */	blr
/* 801B2854 001AE4B4  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 801B2858 001AE4B8  7C 08 02 A6 */	mflr r0
/* 801B285C 001AE4BC  90 01 00 84 */	stw r0, 0x84(r1)
/* 801B2860 001AE4C0  39 61 00 80 */	addi r11, r1, 0x80
/* 801B2864 001AE4C4  48 01 48 BD */	bl _savegpr_25
/* 801B2868 001AE4C8  7C 79 1B 78 */	mr r25, r3
/* 801B286C 001AE4CC  80 6D 9F 88 */	lwz r3, lbl_8063F248-_SDA_BASE_(r13)
/* 801B2870 001AE4D0  7C 9A 23 78 */	mr r26, r4
/* 801B2874 001AE4D4  38 A1 00 08 */	addi r5, r1, 8
/* 801B2878 001AE4D8  7F 24 CB 78 */	mr r4, r25
/* 801B287C 001AE4DC  3B 80 00 00 */	li r28, 0
/* 801B2880 001AE4E0  38 C0 00 00 */	li r6, 0
/* 801B2884 001AE4E4  38 E0 00 01 */	li r7, 1
/* 801B2888 001AE4E8  48 00 DB 19 */	bl func_801C03A0
/* 801B288C 001AE4EC  7C 7D 1B 78 */	mr r29, r3
/* 801B2890 001AE4F0  7F 23 CB 78 */	mr r3, r25
/* 801B2894 001AE4F4  7F 44 D3 78 */	mr r4, r26
/* 801B2898 001AE4F8  38 A1 00 28 */	addi r5, r1, 0x28
/* 801B289C 001AE4FC  38 C0 00 00 */	li r6, 0
/* 801B28A0 001AE500  38 E0 00 01 */	li r7, 1
/* 801B28A4 001AE504  4B FC E8 51 */	bl func_801810F4
/* 801B28A8 001AE508  3B E1 00 28 */	addi r31, r1, 0x28
/* 801B28AC 001A


vate const val EMPTY: Long = 0
        private const val WORLDWIDE: Long = 1
    }
}/*
 * Twittnuker - Twitter client for Android
 *
 * Copyright (C) 2013-2017 vanita5 <mail@vanit.as>
 *
 * This program incorporates a modified version of Twidere.
 * Copyright (C) 2012-2017 Mariotaku Lee <mariotaku.lee@gmail.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package de.vanita5.twittnuker.activity

import android.accounts.AccountManager
import android.app.Activity
import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Intent
import android.database.Cursor
import android.graphics.PorterDuff.Mode
import android.net.Uri
import android.os.Bundle
import android.support.v4.app.LoaderManager.LoaderCallbacks
import android.support.v4.content.CursorLoader
import android.support.v4.content.Loader
import android.support.v4.view.ViewCompat
import android.support.v4.view.WindowInsetsCompat
import android.support.v4.widget.CursorAdapter
import android.text.Editable
import android.text.TextUtils
import android.text.TextWatcher
import android.view.*
import android.view.View.OnClickListener
import android.view.inputmethod.InputMethodManager
import android.widget.*
import android.widget.AdapterView.OnItemClickListener
import android.widget.AdapterView.OnItemSelectedListener
import kotlinx.android.synthetic.main.activity_quick_search_bar.*
import org.mariotaku.kpreferences.get
import org.mariotaku.ktextension.empty
import org.mariotaku.ktextension.spannable
import de.vanita5.twittnuker.BuildConfig
import de.vanita5.twittnuker.R
import de.vanita5.twittnuker.TwittnukerConstants.*
import de.vanita5.twittnuker.adapter.AccountsSpinnerAdapter
import de.vanita5.twittnuker.annotation.AccountType
import de.vanita5.twittnuker.constant.IntentConstants.EXTRA_ACCOUNT_KEY
import de.vanita5.twittnuker.constant.IntentConstants.EXTRA_QUERY
import de.vanita5.twittnuker.constant.KeyboardShortcutConstants.ACTION_NAVIGATION_BACK
import de.vanita5.twittnuker.constant.KeyboardShortcutConstants.CONTEXT_TAG_NAVIGATION
import de.vanita5.twittnuker.constant.newDocumentApiKey
import de.vanita5.twittnuker.constant.profileImageStyleKey
import de.vanita5.twittnuker.extension.appendQueryParameterIgnoreNull
import de.vanita5.twittnuker.extension.loadProfileImage
import de.vanita5.twittnuker.model.AccountDetails
import de.vanita5.twittnuker.model.SuggestionItem
import de.vanita5.twittnuker.model.UserKey
import de.vanita5.twittnuker.model.util.AccountUtils
import de.vanita5.twittnuker.provider.TwidereDataStore.SearchHistory
import de.vanita5.twittnuker.provider.TwidereDataStore.Suggestions
import de.vanita5.twittnuker.util.*
import de.vanita5.twittnuker.util.EditTextEnterHandler.EnterListener
import de.vanita5.twittnuker.util.content.ContentResolverUtils
import de.vanita5.twittnuker.view.ProfileImageView

class QuickSearchBarActivity : BaseActivity(), OnClickListener, LoaderCallbacks<Cursor?>,
        OnItemSelectedListener, OnItemClickListener


p": "round", "lineJoin": "round", "opacity": 1.0, "radius": 0.021365428955497593, "stroke": true, "weight": 3}
            ).addTo(feature_group_84a7ea5bfef2c23ab398007d2cedc29b);

        var popup_36901a4febc92124416e465dcbca0fb0 = L.popup({"maxWidth": "100%"});

                var html_1636b981367645313ace1ac92eee7ed9 = $(`<div id="html_1636b981367645313ace1ac92eee7ed9" style="width: 100.0%; height: 100.0%;">Rio Vermelho - Potência: 2400.0 KW</div>`)[0];
                popup_36901a4febc92124416e465dcbca0fb0.setContent(html_1636b981367645313ace1ac92eee7ed9);

        circle_marker_0bfcf5a8527f2a4865198575e6a45dc7.bindPopup(popup_36901a4febc92124416e465dcbca0fb0)
        ;

        var popup_3e438b58c8f51945f01d3666329c60bb = L.popup({"maxWidth": "100%"});

                var html_ace7dcc8af7d27104b2b9522607ff367 = $(`<div id="html_ace7dcc8af7d27104b2b9522607ff367" style="width: 100.0%; height: 100.0%;">Rio Vermelho - Potência: 2400.0 KW<br>Proprietário: USINA RIO VERMELHO DE ENERGIA LTDA.</div>`)[0];
                popup_3e438b58c8f51945f01d3666329c60bb.setContent(html_ace7dcc8af7d27104b2b9522607ff367);

        circle_marker_0bfcf5a8527f2a4865198575e6a45dc7.bindPopup(popup_3e438b58c8f51945f01d3666329c60bb)
        ;

            var circle_marker_d648758ca6c27979ed41285b731cecaf = L.circleMarker(
                [-8.72081049, -35.84082241],
                {"bubblingMouseEvents": true, "color": "green", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.5, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1.0, "radius": 0.0022433700403272474, "stroke": true, "weight": 3}
            ).addTo(feature_group_84a7ea5bfef2c23ab398007d2cedc29b);

        var popup_142139faefd86498772ec7b6ba6c7db9 = L.popup({"maxWidth": "100%"});

                var html_7655b570943d7ade3f6a1f7365c81c70 = $(`<div id="html_7655b570943d7ade3f6a1f7365c81c70" style="width: 100.0%; height: 100.0%;">Moças - Potência: 252.0 KW</div>`)[0];
                popup_142139faefd86498772ec7b6ba6c7db9.setContent(html_7655b570943d7ade3f6a1f7365c81c70);

        circle_marker_d648758ca6c27979ed41285b731cecaf.bindPopup(popup_142139faefd86498772ec7b6ba6c7db9)
        ;


	}
}

func (c *ElasticChan) Log() log.Logger {
	c.logMu.RLock()
	defer c.logMu.RUnlock()

	return c.log

}

func (c *ElasticChan) SetLog(logger log.Logger) {
	c.logMu.Lock()

	c.log = logger.
		WithPrefix("util.ElasticChan").
		WithFields(log.Fields{
			"elastic_chan_ptr": fmt.Sprintf("%p", c),
		})

	c.logMu.Unlock()
}

// Poll for input from one end of the channel and add it to the buffer.
// Also poll sending buffered signals out over the output chan.
// TODO: add cancel chan
func (c *ElasticChan) manage() {
	defer close(c.done)

loop:
	for {
		logger := c.Log()

		if len(c.buffer) > 0 {
			// The buffer has something in it, so try to send as well as
			// receive.
			// (Receive first in order to minimize blocked Send() calls).
			select {
			case in, ok := <-c.In:
				if !ok {
					if logger != nil {
						logger.Trace("elastic chan will dispose")
					}

					break loop
				}
				c.Log().Tracef("ElasticChan %p gets '%v'", c, in)
				c.buffer = append(c.buffer, in)
			case c.Out <- c.buffer[0]:
				c.Log().Tracef("ElasticChan %p sends '%v'", c, c.buffer[0])
				c.buffer = c.buffer[1:]
			}
		} else {
			// The buffer is empty, so there's nothing to send.
			// Just wait to receive.
			in, ok := <-c.In
			if !ok {
				if logger != nil {
					logger.Trace("elastic chan will dispose")
				}

				break loop
			}
			c.Log().Tracef("ElasticChan %p gets '%v'", c, in)
			c.buffer = append(c.buffer, in)
		}
	}

	c.dispose()
}

func (c *ElasticChan) dispose() {
	logger := c.Log()

	if logger != nil {
		logger.Trace("elastic chan disposing...")
	}

	for len(c.buffer) > 0 {
		select {
		case c.Out <- c.buffer[0]:
			c.buffer = c.buffer[1:]
		default:
		}
	}

	if logger != nil {
		logger.Trace("elastic chan disposed")
	}
}
package transaction

import (
	"fmt"
	"sync"
	"time"

	"github.com/discoviking/fsm"

	"github.com/ghettovoice/gosip/log"
	"github.com/ghettovoice/gosip/sip"
	"github.com/ghettovoice/gosip/timing"
)

type ServerTx interface {
	Tx
	Respond(res sip.Response) error
	Acks() <-chan sip.Request
	Cancels() <-chan sip.Request
}

type serverTx struct {
	commonTx
	lastAck      sip.Request
	lastCancel   sip.Request
	acks         chan sip.Request
	cancels      chan sip.Request
	timer_g      timing.Timer
	timer_g_time time.Duration
	timer_h      timing.Timer
	timer_i      timing.Timer
	timer_i_time time.Duration
	timer_j      timing.Timer
	timer_1xx    timing.Timer
	timer_l      timing.Timer
	reliable     bool

	mu        sync.RWMutex
	closeOnce sync.Once
}

func NewServerTx(origin sip.Request, tpl sip.Transport, logger log.Logger) (


class="cell">{{ element.id }}
          </ng-container>

          <ng-container matColumnDef="nome">
            Nome
            {{ element.nomeCategoria }}
          </ng-container>

          <ng-container matColumnDef="acoes">
            Ações

              <button mat-icon-button>
                <mat-icon class="text-textDestaque  hover:text-gray-700" (click)="editCategoria(element.id)" >edit</mat-icon>
              </button>
              <button mat-icon-button>
                <mat-icon class="text-textDestaque  hover:text-gray-700" (click)="deleteCategoria(element.id)" >delete</mat-icon>
              </button>

          </ng-container>

  <button class="bg-textDestaque border-[0.15rem] border-gray-400 border-opacity-10 py-4 px-4 rounded-full flex items-center hover:shadow-gray-400 hover:opacity-90 transition-all" type="button" data-drawer-target="drawer-navigation" data-drawer-show="drawer-navigation" aria-controls="drawer-navigation">
    <mat-icon aria-hidden="false" aria-label="Example home icon" fontIcon="apps" class="text-white"></mat-icon>
  </button>

Menu

  <button type="button" data-drawer-hide="drawer-navigation" aria-controls="drawer-navigation" class="text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm p-1.5 absolute top-2.5 end-2.5 inline-flex items-center dark:hover:bg-gray-600 dark:hover:text-white" >
      <svg aria-hidden="true" class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg>
      Close menu
  </button>

          <button (click)="inicio()" class="flex items-center p-2 text-gray-900 rounded-lg dark:text-white hover:bg


      ref_value = "debugMode",
            callback = debugToggle,
            info = {"Requires you hold ctrl when pressing the built in keybinds"}
        }), create_option_cycle({
            options = {"DEBUG", "INFO", "WARNING", "ERROR"},
            current_option = 2,
            ref_table = test.config,
            ref_value = "logLevel",
            opt_callback = "DP_config_callback",
            info = {"Log Level"}
        }), create_option_cycle({
            options = {"Page 1", "Page 2"},
            scale = 0.8,
            cycle_shoulders = true,
            opt_callback = 'update_mod_list',
            -- current_option = 1,
            -- colour = G.C.RED,
            no_pips = true,
            focus_args = {
                snap_to = true,
                nav = 'wide'
            }
        })}
    }}
}


=0,{$[all x in"01tTfFyYnN";(any"0fFnN"in x)and any"1tTyY"in x;0b]}each dchar; / boolean
	info:update t:"B",rule:250,maybe:1b from info where t in"HC",mw=1,mdot=0,{all x in"01tTfFyYnN"}each dchar; / boolean
	info:update t:"X",rule:260,maybe:0b from info where t="?",mw=2,{$[all x in"0123456789abcdefABCDEF";(any .Q.n in x)and any"abcdefABCDEF"in x;0b]}each dchar; /hex
	info:update t:"S",rule:270,maybe:1b from info where t="?",mw<.csv.SYMMAXWIDTH,mw>1,gr<.csv.SYMMAXGR; / symbols (max width permitting)
	info:update t:"*",rule:280,maybe:0b from info where t="?"; / the rest as strings
	/ flag those S/* columns which could be encoded to integers (.Q.j10/x10/j12/x12) to avoid symbols
	info:update j12:1b from info where t in"S*",mw<13,{all x in .Q.nA}each dchar;
	info:update j10:1b from info where t in"S*",mw<11,{all x in .Q.b6}each dchar;
	select c,ci,t,maybe,empty,res,j10,j12,ipa,mw,mdot,rule,gr,ndv,dchar from info}
info:info0[;()] / by default don't restrict columns
infolike:{[file;pattern] info0[file;{x where x like y}[lower colhdrs[file];pattern]]} / .csv.infolike[file;"*time"]

\d .
/ DATA:()
bulkload:{[file;info]
	if[not`DATA in system"v";'`DATA.not.defined];
	if[count DATA;'`DATA.not.empty];
	loadhdrs:exec c from info where not t=" ";loadfmts:exec t from info;
	.csv.fs2[{[file;loadhdrs;loadfmts] `DATA insert $[count DATA;flip loadhdrs!(loadfmts;.csv.DELIM)0:file;loadhdrs xcol(loadfmts;enlist .csv.DELIM)0:file]}[file;loadhdrs;loadfmts]];
	count DATA}
@[.:;"\\l csvutil.custom.q";::]; / save your custom settings in csvutil.custom.q to override those set at the beginning of the file
</textarea>

MIME type defined: text/x-q.

<!doctype html>

<title>CodeMirror: Eiffel mode</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="../../doc/docs.css">

<link rel="stylesheet" href="../../lib/codemirror.css">
<link rel="stylesheet" href="../../theme/neat.css">

CodeMirror

Home

Manual

Code

Language modes

Eiffel

Eiffel mode

<form><textarea id="code" name="code">
note
    description: "[
        Project-wide universal properties.
        This class is an ancestor to all developer-written classes.
        ANY may be customized for individual projects or teams.
        ]"

    library: "Free implementation of ELKS library"
    status: "See notice at end of class."
    legal: "See notice at end of class."
    date: "$Date: 2013-01-25 11:49:00 -0800 (Fri,


          transforms.InterpolationMode.NEAREST: Image.NEAREST,
              transforms.InterpolationMode.LANCZOS: Image.LANCZOS,}
    return mapper[method]

def __make_power_2(img, base, method=transforms.InterpolationMode.BICUBIC):
    method = __transforms2pil_resize(method)
    ow, oh = img.size
    h = int(round(oh / base) * base)
    w = int(round(ow / base) * base)
    if h == oh and w == ow:
        return img

    __print_size_warning(ow, oh, w, h)
    return img.resize((w, h), method)

def __scale_width(img, target_size, crop_size, method=transforms.InterpolationMode.BICUBIC):
    method = __transforms2pil_resize(method)
    ow, oh = img.size
    if ow == target_size and oh >= crop_size:
        return img
    w = target_size
    h = int(max(target_size * oh / ow, crop_size))
    return img.resize((w, h), method)

def __crop(img, pos, size):
    ow, oh = img.size
    x1, y1 = pos
    tw = th = size
    if (ow > tw or oh > th):
        return img.crop((x1, y1, x1 + tw, y1 + th))
    return img

def __flip(img, flip):
    if flip:
        return img.transpose(Image.FLIP_LEFT_RIGHT)
    return img

def __print_size_warning(ow, oh, w, h):
    """Print warning information about image size(only print once)"""
    if not hasattr(__print_size_warning, 'has_printed'):
        print("The image size needs to be a multiple of 4. "
              "The loaded image size was (%d, %d), so it was adjusted to "
              "(%d, %d). This adjustment will be done to all images "
              "whose sizes are not multiples of 4" % (ow, oh, w, h))
        __print_size_warning.has_printed = True


	}

	slog.Info("Reading an object using all fields from ListObjectMetadata", "objectName", objectName)

	requestFields := datautils.Map[string, common.FieldMetadata](
		metadata.Result[objectName].Fields,
	).KeySet()

	response, err := conn.Read(ctx, common.ReadParams{
		ObjectName: objectName,
		Fields:     requestFields,
	})
	if err != nil {
		utils.Fail("error reading from connector", "error", err)
	}

	if response.Rows == 0 {
		utils.Fail("expected to read at least one record", "error", err)
	}

	slog.Info("Compare object metadata against endpoint response")

	if responsePostProcess == nil {
		responsePostProcess = goutils.Identity[map[string]any]
	}

	rawData := responsePostProcess(response.Data[0].Raw)

	if mismatchErr := compareFieldsMatch(objectName, metadata, rawData); mismatchErr != nil {
		utils.Fail("schema and payload response have mismatching fields", "error", mismatchErr)
	}

	slog.Info("==> Success fields match!")

	fmt.Println("Metadata...")
	utils.DumpJSON(metadata, os.Stdout)
}

func compareFieldsMatch(objectName string, metadata *common.ListObjectMetadataResult, response map[string]any) error {
	fields := make(map[string]bool)

	for field := range response {
		fields[field] = false
	}

	mismatch := make([]error, 0)

	for fieldName := range metadata.Result[objectName].Fields {
		if _, found := fields[fieldName]; found {
			fields[fieldName] = true
		}
	}

	// every field from Read must be known to ListObjectMetadata
	for name, found := range fields {
		if !found {
			mismatch = append(mismatch, fmt.Errorf("metadata schema is missing field %v", name))
		}
	}

	return errors.Join(mismatch...)
}
package main

import (
	"context"
	"os/signal"
	"syscall"

	"github.com/amp-labs/connectors/internal/datautils"
	"github.com/amp-labs/connectors/providers"
	connTest "github.com/amp-labs/connectors/test/aws"
	"github.com/amp-labs/connectors/test/utils"
	"github.com/amp-labs/connectors/test/utils/testscenario"
)

type CreatePayload struct {
	DisplayName string `json:"DisplayName"`
	Description string `json:"Description"`
}

type UpdatePayload struct {
	Operations []AttributeOperation `json:"Operations"`
}

type AttributeOperation struct {
	AttributePath  string `json:"AttributePath"`
	AttributeValue any    `json:"AttributeValue"`
}

func main() {
	// Handle Ctrl-C gracefully.
	ctx, done := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
	defer done()

	// Set up slog logging.
	utils.SetupLogging()

	conn := connTest.GetAWSConnector(ctx, providers.ModuleAWSIdentityCenter)

	testscenario.ValidateCreateUpdateDelete(ctx, conn,
		"Groups",
		CreatePayload{
			DisplayName: "Sales",
			Description: "Team that knows how to sell",
		},
		UpdatePayload{
			Operations: []AttributeOperation{
				{
					AttributePath:  "description",
					AttributeValue: "Best team ever",
				},
			},
		},
		testscenario.CRUDTestSuite{
			ReadFields: datautils.NewSet("GroupId", "DisplayName", "Description")


et Abrahae, quia erit semen eius accola in terra aliena, et servituti eos subiicient annis quadringentis triginta.
          Then when he says, Now this I say: that the testament which was confirmed by God, he draws his conclusion. Here let us see, in order, what it is that he says. He says therefore that this is what God promised to Abraham. But this is a testament, i.e., a promise that he would obtain an inheritance: I will make a new covenant with the house of Israel and with the house of Juda” (Jer 31:31). He says, confirmed (in keeping with what he said above, namely, a man’s testament, if it be confirmed, no man despiseth nor addeth to it) by God, i.e., by the One who promised. The testament was confirmed, namely, with an oath: “By my own self have I sworn” (Gen 22:16); “That by two immutable things in which it is impossible for God to lie, we may have the strongest comfort” (Heb 6:18). This testament, I say, the Law doth not disannul: the law, namely, which was made and given by God through Moses: “For the law was given by Moses” (Jn 1:17) after four hundred thirty years. Then, as if to explain what he had said, he adds, doth not disannul to make the promise of no effect. For the aforesaid testament would have been disannulled if the promise made to Abraham were set aside, i.e., made fruitless, as though the seed promised to Abraham were not enough to bless the Gentiles. But as a matter of fact, the promises made to the patriarchs were not set aside by Christ but confirmed: “For I say that Christ Jesus was minister of the circumcision to confirm the promises made unto the fathers” (Rom 15:8); “For all the promises of God are in him ‘It is’” (2 Cor 1:20). After four hundred thirty years— this concords with Exodus (12:40): “The abode of the children of Israel that they made in Egypt was four hundred thirty years,” and with Acts (7:6): “And God said to him,” i.e., to Abraham, “that his seed should sojourn in a strange country and that they shall bring them under bondage four hundred thirty years.”

          Sed contra est quod dicitur Gen. c. XV, 13: scito praenoscens, quod peregrinum futurum sit semen tuum, et servituti eos subiicient, et affligent eos annis quadringentis.
          But against this, it is said in Genesis (15:13): “Know thou before that thy seed shall be a stranger in a land not their own, and they shall bring them under bondage and afflict them four hundred years.”

          Respondeo. Dicendum quod si fiat computatio annorum a prima promissione facta Abrahae, quae legitur Gen. XII, usque ad exitum filiorum Israel de Aegypto, quando data est lex, sic sunt anni quadringenti triginta, sicut hic scribitur, et Ex. XII, et Act. c. VII. Si autem incipiat computatio a nativitate Isaac de qua legitur Gen. XXI, sic sunt tantum quadringenti et quinque anni. Nam viginti quinque anni fuerunt a promissione facta Abrahae usque ad nativitatem Isaac. Abraham enim erat septuaginta quinque annorum quando exivit de terra sua, et facta est ei prima promissio, ut habetur Gen. XII. Centenarius autem fuit, quando natus est Isaac, ut habetur ibidem cap. XXI. Quod autem a nativitate Isaac usque ad exitum filiorum Israel de Aegypto fuerint quadringenti quinque anni, probatur per hoc, quod Isaac fuit sexaginta annorum quando genuit Iacob, ut habetur Gen. XXV; Iacob autem er


ignature> {
        match api_argument {
            // If the signature is one, then just wrap it around the vector
            Some(EthBatchSignatures::Single(single_signature)) => {
                vec![single_signature]
            }
            Some(EthBatchSignatures::Multi(signatures)) => signatures,
            None => Vec::new(),
        }
    }
}
<gh_stars>0
//! Test property generation.
use rust_wren::prelude::*;

#[wren_class]
#[derive(Debug)]
struct Foo {
    #[get]
    bar: String,
    #[set]
    baz: String,
    #[getset]
    bar_baz: String,
}

#[wren_methods]
impl Foo {
    #[construct]
    fn new(bar: &str) -> Self {
        Self {
            bar: bar.to_owned(),
            baz: String::new(),
            bar_baz: "DEFAULT BAR_BAZ".to_owned(),
        }
    }

    #[method(name = getBaz)]
    fn get_baz(&self) -> String {
        self.baz.clone()
    }
}

const FOO: &str = r#"
foreign class Foo {
    foreign bar
    foreign baz=(value)
    foreign bar_baz
    foreign bar_baz=(value)

    construct new(bar) {}
    foreign getBaz()
}
"#;

#[test]
fn test_properties() {
    let mut vm = WrenBuilder::new()
        .with_module("test_properties", |module| {
            module.register::<Foo>();
        })
        .build();

    vm.interpret("test_properties", FOO).expect("Interpret failed");
    vm.interpret("test", include_str!("test.wren"))
        .expect("Interpret failed");

    vm.interpret(
        "test_properties",
        r#"
    import "test" for Test

    var a = Foo.new("BAR")

    Test.assertEq(a.bar, "BAR", "Foo.bar")
    Test.shouldFailWith("a.bar assignment", "Foo does not implement 'bar=(_)'.") {
        a.bar = "INVALID"
    }

    // Property assignment return must be the assigned value, by convention.
    Test.assertEq(a.baz = "BAZ", "BAZ", "Foo.baz=")
    Test.shouldFailWith("a.baz get", "Foo does not implement 'baz'.") {
        var baz = a.baz
    }

    Test.assertEq(a.bar_baz, "DEFAULT BAR_BAZ", "Foo.bar_baz")
    // Property assignment return must be the assigned value, by convention.
    Test.assertEq(a.bar_baz = "BAR_BAZ", "BAR_BAZ", "Foo.bar_baz=")
    Test.assertEq(a.bar_baz, "BAR_BAZ", "Foo.bar_baz")

    // Ensure we haven't mutated the others fields.
    Test.assertEq(a.bar, "BAR", "Foo.bar")
    Test.assertEq(a.getBaz(), "BAZ", "Foo.getBaz()")
    "#,
    )
    .expect("Interpret failed");
}
/*
 * @lc app=leetcode.cn id=347 lang=rust
 *
 * [347] 前 K 个高频元素
 */
// @lc code=start
use std::collections::{HashMap,BinaryHeap};
impl Solution {
    pub fn top_k_frequent(nums: Vec<i32>, k: i32) -> Vec<i32> {
        let mut counter = HashMap::<i32,usize>::new();
        for n in nums {
            counter.entry(n).and_modify(|v| *v+=1).or_insert(0);
        }
        let mut heap = BinaryHeap::<(usize,i32)>::new();
        for (k,v) in counter {
            heap.push((v,k));
        }
        let mut res = vec![];
        for _ in 0..k {
            res.push(heap.pop().unwrap().1);
        }
        res


Point(-2F, 18.5F, -27.5F);
		tspike4.setTextureSize(128, 64);
		tspike4.mirror = true;
		setRotation(tspike4, 1.115353F, 0F, -0.5948606F);
		lefthead = new ModelRenderer(this, 0, 30);
		lefthead.addBox(-4.5F, -9F, -4.5F, 9, 9, 8);
		lefthead.setRotationPoint(-8F, -3F, -7F);
		lefthead.setTextureSize(128, 64);
		lefthead.mirror = true;
		setRotation(lefthead, 0F, 0F, 0F);
		leftjaw = new ModelRenderer(this, 0, 50);
		leftjaw.addBox(-4.5F, 1F, -6F, 9, 1, 9);
		leftjaw.setRotationPoint(0F, 0F, 0F);
		leftjaw.setTextureSize(128, 64);
		leftjaw.mirror = true;
		setRotation(leftjaw, 0.3346075F, 0F, 0F);
		lefthead.addChild(leftjaw);
		leftupperjaw = new ModelRenderer(this, 0, 28);
		leftupperjaw.addBox(0F, 0F, 0F, 9, 1, 1);
		leftupperjaw.setRotationPoint(-4.5F, -1F, -5.5F);
		leftupperjaw.setTextureSize(128, 64);
		leftupperjaw.mirror = true;
		setRotation(leftupperjaw, 0F, 0F, 0F);
		lefthead.addChild(leftupperjaw);
		lstooth1 = new ModelRenderer(this, 0, 50);
		lstooth1.addBox(0F, 0F, 0F, 1, 1, 1);
		lstooth1.setRotationPoint(-3.5F, 0F, -6F);
		lstooth1.setTextureSize(128, 64);
		lstooth1.mirror = true;
		setRotation(lstooth1, 0F, 0F, 0F);
		leftjaw.addChild(lstooth1);
		lstooth2 = new ModelRenderer(this, 0, 50);
		lstooth2.addBox(0F, 0F, 0F, 1, 1, 1);
		lstooth2.setRotationPoint(-1.5F, 0F, -6F);
		lstooth2.setTextureSize(128, 64);
		lstooth2.mirror = true;
		setRotation(lstooth2, 0F, 0F, 0F);
		leftjaw.addChild(lstooth2);
		lstooth3 = new ModelRenderer(this, 0, 50);
		lstooth3.addBox(0F, 0F, 0F, 1, 1, 1);
		lstooth3.setRotationPoint(0.5F, 0F, -6F);
		lstooth3.setTextureSize(128, 64);
		lstooth3.mirror = true;
		setRotation(lstooth3, 0F, 0F, 0F);
		leftjaw.addChild(lstooth3);
		lstooth4 = new ModelRenderer(this, 0, 50);
		lstooth4.addBox(0F, 0F, 0F, 1, 1, 1);
		lstooth4.setRotationPoint(2.5F, 0F, -6F);
		lstooth4.setTextureSize(128, 64);
		lstooth4.mirror = true;
		setRotation(lstooth4, 0F, 0F, 0F);
		leftjaw.addChild(lstooth4);
		lbtooth1 = new ModelRenderer(this, 0, 50);
		lbtooth1.addBox(0F, 0F, 0F, 1, 2, 1);
		lbtooth1.setRotationPoint(0F, 1F, 0F);
		lbtooth1.setTextureSize(128, 64);
		lbtooth1.mirror = true;


-order-path",
					PlatformDir:    "some-platform-dir",
				}, logger)
				h.AssertNil(t, err)

				h.AssertEq(t, detector.AppDir, "some-app-dir")
				h.AssertNotNil(t, detector.DirStore)
				h.AssertEq(t, detector.HasExtensions, true)
				h.AssertEq(t, detector.Order, expectedOrder)
				h.AssertEq(t, detector.PlatformDir, "some-platform-dir")
				_, ok := detector.Resolver.(*phase.DefaultDetectResolver)
				h.AssertEq(t, ok, true)
				h.AssertNotNil(t, detector.Runs)
			})
		})
	})

	when(".Detect", func() {
		var (
			detector *phase.Detector
			executor *testmock.MockDetectExecutor
			resolver *testmock.MockDetectResolver
		)

		it.Before(func() {
			configHandler.EXPECT().ReadAnalyzed("some-analyzed-path", gomock.Any()).Return(files.Analyzed{}, nil).AnyTimes()
			configHandler.EXPECT().ReadOrder("some-order-path").Return(buildpack.Order{}, buildpack.Order{}, nil)
			var err error
			detector, err = detectorFactory.NewDetector(platform.LifecycleInputs{
				AnalyzedPath:   "some-analyzed-path",
				AppDir:         "some-app-dir",
				BuildConfigDir: "some-build-config-dir",
				OrderPath:      "some-order-path",
				PlatformDir:    "some-platform-dir",
			}, logger)
			h.AssertNil(t, err)
			// override factory-provided services
			executor = testmock.NewMockDetectExecutor(mockController)
			resolver = testmock.NewMockDetectResolver(mockController)
			detector.Executor = executor
			detector.Resolver = resolver
		})

		it("provides detect inputs to each group element", func() {
			bpA1 := &buildpack.BpDescriptor{
				Buildpack: buildpack.BpInfo{BaseInfo: buildpack.BaseInfo{ID: "A", Version: "v1"}},
			}
			dirStore.EXPECT().LookupBp("A", "v1").Return(bpA1, nil).AnyTimes()
			executor.EXPECT().Detect(bpA1, gomock.Any(), gomock.Any()).Do(
				func(_ buildpack.Descriptor, inputs buildpack.DetectInputs, _ log.Logger) buildpack.DetectOutputs {
					h.AssertEq(t, inputs.AppDir, detector.AppDir)
					h.AssertEq(t, inputs.BuildConfigDir, detector.BuildConfigDir)
					h.AssertEq(t, inputs.PlatformDir, detector.PlatformDir)
					return buildpack.DetectOutputs{}
				})

			group := []buildpack.GroupElement{
				{ID: "A", Version: "v1", Optional: true},
			}
			resolver.EXPECT().Resolve(group, detector.Runs)

			detector.Order = buildpack.Order{{Group: group}}
			_, _, _ = detector.Detect()
		})

		it("passes through the CNB_TARGET_* env vars", func() {
			bpA1 := &buildpack.BpDescriptor{
				Buildpack: buildpack.BpInfo{BaseInfo: buildpack.BaseInfo{ID: "A", Version: "v1"}},
			}
			detector.AnalyzeMD = files.Analyzed{RunImage: &files.RunImage{TargetMetadata: &files.TargetMetadata{OS: "linux", Arch: "amd64"}}}
			dirStore.EXPECT().LookupBp("A", "v1").Return(bpA1, nil).AnyTimes()
			executor.EXPECT().Detect(bpA1, gomock.Any(), gomock.Any()).Do(
				func(_ buildpack.Descriptor, inputs buildpack.DetectInputs, _ log.Logger) buildpack.DetectOutputs {
					h.AssertContains(t, inputs.TargetEnv, "CNB_TARGET_ARCH=amd64")
					h.AssertContains(t,