Examples MultiSearch or Join between Indices

Hello Guys, I saw the User Guide but I have doubts, I would like to know how to use Multisearch or Join between indices, for example, if I have three indices (A,B,C) where there are relations by id's,  and I search from name "A"  (for example) I want to get all index relationships in one call. How could I do? Do you have any examples for that?. Thank you and  I'm sorry for my english :).

Hi @Cris1401,
Try to looking at tests, it could be helpful.
For example, see MultiSearch API test and relationship test with docs inside.
If you still need help, could you share REST API queries you want to send using .net client?

the case maybe is opensearch diff to elasticsearch .
My Code like it.
 public interface IOpenBookDocument
    {
        /// <summary>
        /// Id
        /// </summary>
        string Id { get; set; }

        /// <summary>
        /// Join
        /// </summary>
        JoinField Join { get; set; }
    }

    [OpenSearchType(RelationName = "strategy")]
    public class OpenEsBookStrategy : BookStrategy, IOpenBookDocument
    {
        /// <summary>
        /// Join
        /// </summary>
        public JoinField Join { get; set; }
    }

    [OpenSearchType(RelationName = "stop-notice")]
    public class OpenEsBookStopNotice : BookStopNotice, IOpenBookDocument
    {
        /// <summary>
        /// Join
        /// </summary>
        public JoinField Join { get; set; }
    }

  ##
        private async Task CreateIndexAsync()
        {
            var existsRep = await _elasticClient.Indices.ExistsAsync(ElasticIndices.BookIndexer);
            if (existsRep.ApiCall.HttpStatusCode == 200)
                return;
            var response = await _elasticClient.Indices.CreateAsync(
                ElasticIndices.BookIndexer, c => c
                .Index<OpenEsBookBase>()
                .Map<IOpenBookDocument>(m => m
                        .RoutingField(r => r.Required())
                        .AutoMap<OpenEsBookBase>()
                        .AutoMap<OpenEsBookLastChapter>()
                        .AutoMap<OpenEsBookStrategy>()
                        .AutoMap<OpenEsBookPricingStrategy>()
                        .AutoMap<OpenEsBookPromotion>()
                        .AutoMap<OpenEsBookStopNotice>()
                        .Properties(props => props
                            .Join(j => j
                                .Name(p => p.Join)
                                .Relations(r => r
                                    .Join<OpenEsBookBase>(typeof(OpenEsBookLastChapter), typeof(OpenEsBookPricingStrategy),
                                        typeof(OpenEsBookStrategy), typeof(OpenEsBookPromotion), typeof(OpenEsBookStopNotice))
                                )
                            )
                            // TODO:
                            .Keyword(s => s.Name(f => f.Id))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.StrategyId))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.PricingStrategyId))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.PublisherId))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.Serial))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.EnSerial))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.Copyright))
                            .Keyword(s => new KeywordPropertyDescriptor<OpenEsBookBase>().Name(f => f.Tags))
                            .Object<DBGenre>(o => o
                                .Name(n => new ObjectTypeDescriptor<OpenEsBookBase, DBGenre>().Name(i => i.Genres))
                                .Properties(gps => gps
                                    .Keyword(s => s.Name(i => i.Id))
                                    .Text(s => s.Name(i => i.Name))
                                    .Date(s => s.Name(i => i.UpdateTime))
                                    .Date(s => s.Name(i => i.CreateTime))
                                )
                            )
                        )
                    )
            );
            if (!response.IsValid)
                _logger.LogError($"create indexer failed. debug info: {response.DebugInformation}");
        }

it will throw
{"took":5,"errors":true,"items":[{"index":{"_index":"book-indexer","_id":"1f7d2478-1c47-4fbb-895e-3e2597953bf9","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1569,"_primary_term":1,"status":200},{"index":{"_index":"book-indexer","_id":"eb26736d-d566-4959-92f8-fd2e0d6b9b75","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id 'eb26736d-d566-4959-92f8-fd2e0d6b9b75'. Preview of field's value: '{parent=1f7d2478-1c47-4fbb-895e-3e2597953bf9, name=strategy}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}}]}

# Response:
{"took":9,"errors":true,"items":[{"index":{"_index":"book-indexer","_id":"2a093dce-7614-493b-969e-1ca6895ffbe0","_version":3,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2997,"_primary_term":1,"status":200},{"index":{"_index":"book-indexer","_id":"89e61ed6-4a82-4dea-8d97-c4a43a6cceb5","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '89e61ed6-4a82-4dea-8d97-c4a43a6cceb5'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=pricing-strategy}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"67658be3-f263-45cb-a478-c0867b10421a","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '67658be3-f263-45cb-a478-c0867b10421a'. Preview of field's value: '{parent=2a093dce-7614-493b-
969e-1ca6895ffbe0, name=strategy}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"3226a86a-473e-4a7a-8cce-7d51bd47a723","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '3226a86a-473e-4a7a-8cce-7d51bd47a723'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"507ac681-1b80-482b-bdb8-9511e318e0b3","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '507ac681-1b80-482b-bdb8-9511e318e0b3'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"5596112c-d11c-4bca-aca8-cd5393f3cad1","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '5596112c-d11c-4bca-aca8-cd5393f3cad1'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"dd697927-fa0a-4e07-ac85-610c70
aae618","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id 'dd697927-fa0a-4e07-ac85-610c70aae618'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"df9d5b21-4223-43bb-9fe3-53ea0386463a","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id 'df9d5b21-4223-43bb-9fe3-53ea0386463a'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"75c0c2b3-c694-4dd8-9e40-439d10231548","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id
'75c0c2b3-c694-4dd8-9e40-439d10231548'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}}]}

# Request:
{"index":{"_id":"2a093dce-7614-493b-969e-1ca6895ffbe0","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"topClass":0,"isPay":true,"tags":["Historical","Action","Weak to Strong","Betrayal","Inferiority Complex","Adopted Children",
"Destiny","Death","Trap","Murder","Loneliness","Tsundere","Nightmare","Identity Crisis","Family","War","Romance","Mysteries","Modern history"],"aliases":["毒妃倾城：王爷，勿高攀"],"ratingCount":11,"waitingReleaseCount":70,"borrowFromChapters":{"web":"C2","ios":"C11","android":"C11"},"borrowToChapters":{"web":"C28","ios":"C28","android":"C28"},"author":{"name":"步悠然","enName":"enAuthor","authorId":null,"updateTime":null,"createTime":"2019-11-27T12:37:28","id":"6c6853ec-c8c1-48a9-8eec-9f5d6dd78267"},"genres":[{"name":"Historical","engName":"Historical","targetAudience":"male-lead","isHide":false,"score":290000,"icon":"https://img.babelchain.org/book_images_test/history@2x.png","parentId":"WebNovel","languageCode":"en","updateTime":"2020-08-28T06:50:10","createTime":"2020-03-13T02:50:52","id":"bb91c03b-1fe2-41e2-b185-7c87100be8d2"}],"source":null,"translator":null,"trend":{"bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","weekTrend":1,"monthTrend":0,"exposureTrend":10263,"readingTrend":201,"updateTime":"2023-05-22T00:15:35","createTime":"2021-12-10T06:35:56","id":"1bb60996-8104-4ecd-a64a-b1e6b083ce64"},"bricksTrend":{"bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","weekTrend":168,"monthTrend":1208,"updateTime":"2023-05-22T00:10:12","createTime":"2023-05-22T00:10:12","id":"63112417-bfee-44d1-9947-80137872f33e"},"releasePlan":null,"promotions":[],"premiumLibrary":null,"strategyId":"f3c2c02f-0976-479a-8aef-41b75b7b4ab3","pricingStrategyId":"be459163-b1b4-4c4e-b33e-f3ebe47c39cd","lastChapterTime":"2020-06-23T07:36:47","isOriginal":false,"onlyRechargePurchase":false,"join":"book-base","bookSeries":null,"seriesId":null,"seriesOrder":null,"seriesBookJoinTime":null,"authorId":"6c6853ec-c8c1-48a9-8eec-9f5d6dd78267","isCopyrightAuthorized":"1","cover":"cover","volume":"V1","editorId":null,"name":"Poison imperial concubine lean city: Lord, don't gao gao","originRefId":"73b859c2-1f48-4c08-abf0-b624255ac61a","publisherId":null,"publishTime":"2020-06-23T07:36:32.571371","synopsis":"enSynopsis","tag":"|Historical|Ac
tion|Weak to Strong|Betrayal|Inferiority Complex|Adopted Children|Destiny|Death|Trap|Murder|Loneliness|Tsundere|Nightmare|Identity Crisis|Family|War|Romance|Mysteries|Modern history|","translatorId":null,"enSerial":null,"status":0,"alias":"毒妃倾城：王爷，勿高攀","canonicalName":"poison-imperial-concubine-lean-city-lo","cnName":"毒妃倾城：王爷，勿高攀","copyright":"泛次元","historyCanonicalName":"poison-imperial-concubine-lean-city-lo","serial":null,"subTitle":"","ratingNum":9.454545454545454545454545455,"releasedChapterCount":30,"cpEnCompanyName":"fan ci yuan","corpusBookId":4236,"corpusProjectId":12931,"corpusI18NId":813,"sensitivityRating":"","richSynopsis":"","targetAudience":2,"subway":null,"languageCode":"en","countryCode":"US","updateTime":"2022-01-11T03:48:09","createTime":"2019-11-27T12:44:36","id":"2a093dce-7614-493b-969e-1ca6895ffbe0"}
{"index":{"_id":"89e61ed6-4a82-4dea-8d97-c4a43a6cceb5","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"pricing-strategy","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"pricingStrategy":{"name":"统一每千字不限制调价--测试数据别动","type":"location","adjustmentType":"no_limit","adjustmentProportion":null,"lastModifyUser":"wanghailin@funstory.ai","prices":[{"pricingType":1,"brick":5,"groupName":"主要地区-中国","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-美国","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-印度尼西亚","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-印度","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-巴西","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-菲律宾","evalExpression":"(Words >= 1000 ? Words / 1000 : 1) * Price"},{"pricingType":1,"brick":5,"groupName":"主要地区-泰国","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-马来西亚","evalExpression":"(Words >= 1000 ? Words / 1000 : 1) * Price"},{"pricingType":1,"brick":5,"groupName":"主要地区-俄罗斯","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-秘鲁","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-墨西哥","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-英国","evalExpression":"deci
mal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-法国","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-加拿大","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-澳大利亚","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-新加坡","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-土耳其","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-意大利","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-哥伦比亚","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-阿根廷","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-德国","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-西班牙","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","evalExpression":"decimal.T
oInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"IP未知","evalExpression":"(Words >= 1000 ? Words / 1000 : 1) * Price"}],"chapterPrices":[{"pricingType":1,"brick":5,"groupName":"主要地区-中国","isoCode":"CN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-美国","isoCode":"US","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-印度尼西亚","isoCode":"ID","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick"
:5,"groupName":"主要地区-印度","isoCode":"IN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-巴西","isoCode":"BR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-菲律宾","isoCode":"PH","evalExpression":"(Words >= 1000 ? Words / 1000 : 1) * Price"},{"pricingType":1,"brick":5,"groupName":"主要地区-泰国","isoCode":"TH","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-马来西亚","isoCode":"MY","evalExpression":"(Words >= 1000 ? Words / 1000 : 1) * Price"},{"pricingType":1,"brick":5,"groupName":"主要地区-俄罗斯","isoCode":"RU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-秘鲁","isoCode":"PE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-墨西哥","isoCode":"MX","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-英国","isoCode":"GB","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-法国","isoCode":"FR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-加拿大","isoCode":"CA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-澳大利亚","isoCode":"AU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"主要地区-新加å

¶他国家","isoCode":"KZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"KG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"TJ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"UZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"TM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"AF","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"IQ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"IR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"SY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"JO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"LB","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"IL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国å
®¶","isoCode":"PS","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"SA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"BH","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"QA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"KW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"AE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"OM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"YE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"GE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"AM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"AZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"亚洲其他国家","isoCode":"CY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","iso
Code":"SE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"NO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"IS","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"DK","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"FO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"EE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"LV","evalExpression":"decimal.ToInt32(decimal.Floor((Words >=
 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"LT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"BY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"UA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"MD","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"PL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"CZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName"
:"欧洲其他国家","isoCode":"SK","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"HU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"AT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"CH","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"LI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"IE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"NL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"BE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"LU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"MC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Pric
e))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"RO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"BG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"RS","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"MK","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"AL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"GR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"SI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"HR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingT
ype":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"VA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"SM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"MT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"PT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"欧洲其他国家","isoCode":"AD","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"EG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"LY","evalExpression":"decimal.ToInt
32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SD","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"TN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"DZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"MA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ET","evalExpression":"decimal.ToI
nt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ER","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"DJ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:
1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"KE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"TZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"UG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"RW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"BI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"TD","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"CF","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"grou
pName":"非洲","isoCode":"CM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"GQ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"GA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"CG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"CD","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ST","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"MR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words /
1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"EH","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"GM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ML","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"BF","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"GN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"GW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"CV","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"LR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"CI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"GH","evalExpression":
"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"TG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"BJ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"NE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ZM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"AO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ZW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"MW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"MZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"BW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"NA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"ZA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"LS","evalExpres
sion":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"MG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"KM","evalExpres
sion":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"MU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"SH","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"非洲","isoCode":"NG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"NZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"PG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"SB","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"VU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"FM","evalExpression":"decimal.ToInt32(
decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"MH","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"PW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"NR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"KI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"MP","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"TV","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricing
Type":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"WS","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"FJ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"GU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"NC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"PF","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"PN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"WF","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"NU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,
"brick":5,"groupName":"大洋洲其他国家","isoCode":"TK","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"AS","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"大洋洲其他国家","isoCode":"MP","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"GL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"GT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"BZ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"SV","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"HN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"NI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"CR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"PA","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"BS","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1
,"brick":5,"groupName":"美洲其他国家","isoCode":"CU","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"JM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"HT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"AG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"KN","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"DM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"LC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"VC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"GD","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick"
:5,"groupName":"美洲其他国家","isoCode":"BB","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"TT","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"PR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"VG","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"VI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"AI","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"GP","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"MQ","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"AW","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"TC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 10
00M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"KY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"BM","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"VE","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"GY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"GF","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"SR","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode
":"EC","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"BO","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"CL","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"UY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"美洲其他国家","isoCode":"PY","evalExpression":"decimal.ToInt32(decimal.Floor((Words >= 1000 ? Words / 1000M:1M) * Price))"},{"pricingType":1,"brick":5,"groupName":"IP未知","isoCode":"UNKOWN","evalExpression":"(Words >= 1000 ? Words / 1000 : 1) * Price"}],"updateTime":"2020-11-04T06:48:15.947142","createTime":"2020-08-23T09:42:06.100516","id":"be459163-b1b4-4c4e-b33e-f3ebe47c39cd"},"freeIndies":[{"startIndex":1,"e
ndIndex":1},{"startIndex":6,"endIndex":9}],"appFreeIncludes":[{"startIndex":1,"endIndex":10}],"isPay":true,"limitChapterAd":false,"isVIP":true,"isWaitingFree":true,"waitingHour":1,"waitingLimit":2,"borrowedDay":1,"limitLatestChapter":true,"limitLatestChapterCount":2,"waitingFreeStartTime":"2020-08-23T00:00:00","noLimitEndTime":false,"waitingFreeEndTime":"2020-08-27T00:00:00","pricingStrategyId":"be459163-b1b4-4c4e-b33e-f3ebe47c39cd","onlySupportsWhole":false,"wholePricingPriceType":0,"wholePrice":0,"wholePricingPrices":null,"notSupportSale":false,"isOnlyRechargeBrick":false,"updateTime":"2020-08-24T03:51:22.608778","createTime":"2020-06-23T07:36:58.891645","id":"89e61ed6-4a82-4dea-8d97-c4a43a6cceb5"}
{"index":{"_id":"67658be3-f263-45cb-a478-c0867b10421a","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"strategy","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"strategyId":"f3c2c02f-0976-479a-8aef-41b75b7b4ab3","strategy":{"name":"所有平台 全区上架","isNotFound":false,"offlineReason":"所有平台 全区上架","isShowOfflineReason":true,"remark":"全区上架策略7，30日","includeCounties":["CN","US","ID","IN","BR","PH","TH","MY","RU","PE","MX","GB","FR","CA","AU","SG","TR","IT","CO","AR","DE","ES","MN","KP","KR","VN","LA","KH","MM","BN","SG","TL","NP","BT","BD","PK","LK","MV","KZ","KG","TJ","UZ","TM","AF","IQ","IR","SY","JO","LB","IL","PS","SA","BH","QA","KW","AE","OM","YE","GE","AM","AZ","CY","JP","SE","NO","IS","DK","FO","EE","LV","LT","BY","UA","MD","PL","CZ","SK","HU","AT","CH","LI","IE","NL","BE","LU","MC","RO","BG","RS",
"MK","AL","GR","SI","HR","VA","SM","MT","PT","AD","EG","LY","SD","TN","DZ","MA","ET","ER","SO","DJ","KE","TZ","UG","RW","BI","SC","TD","CF","CM","GQ","GA","CG","CD","ST","MR","EH","SN","GM","ML","BF","GN","GW","CV","SL","LR","CI","GH","TG","BJ","NE","ZM","AO","ZW","MW","MZ","BW","NA","ZA","SZ","LS","MG","KM","MU","SH","NZ","PG","SB","VU","FM","MH","PW","NR","KI","MP","TV","WS","FJ","GU","NC","PF","PN","WF","NU","TK","AS","MP","GL","GT","BZ","SV","HN","NI","CR","PA","BS","CU","JM","HT","AG","KN","DM","LC","VC","GD","BB","TT","PR","VG","VI","AI","GP","MQ","AW","TC","KY","BM","VE","GY","GF","SR","EC","BO","CL","UY","PY","UNKOWN"],"showLocations":["list","search","chapter","library","book"],"platforms":["web","ios","android"],"isAllPlatforms":null,"updateTime":"2019-07-30T07:21:36.687607","createTime":"2019-07-30T07:21:36.687606","id":"f3c2c02f-0976-479a-8aef-41b75b7b4ab3"},"enabledExternalLink":false,"showText":"","externalLink":"","updateTime":"2020-06-23T07:36:32.668292","createTime":"2020-06-23T07:36:32.668182","id":"67658be3-f263-45cb-a478-c0867b10421a"}
{"index":{"_id":"3226a86a-473e-4a7a-8cce-7d51bd47a723","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"last-chapter","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"applicationControlId":"3226a86a-473e-4a7a-8cce-7d51bd47a723","id":"75c0c2b3-c694-4dd8-9e40-439d10231548","bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","name":"C30","num":300000,"hasContent":true,"url":"http://discourse/t/poison-imperial-concubine-lean-city-lord-dont-gao-gao-
c30/69537","translatorId":null,"publishTime":"2020-06-23T07:36:47","canonicalName":"c30","isPublish":true,"summary":"Early that morning, Gu Ziyan had caught a chill that made it difficult for him to get up.\n\nNot only did the guards of the mansion not care, they even sent the eldest young miss to stay in the side cou","chapterIndex":0,"brick":0,"originBrick":0,"discountRate":0.0,"type":"babelchain","words":1545,"isPremiumFree":false,"isLimitFree":false,"isBought":null,"isBorrowed":null,"isFree":false,"expireTime":null}
{"index":{"_id":"507ac681-1b80-482b-bdb8-9511e318e0b3","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"last-chapter","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"applicationControlId":"507ac681-1b80-482b-bdb8-9511e318e0b3","id":"75c0c2b3-c694-4dd8-9e40-439d10231548","bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","name":"C30","num":300000,"hasContent":true,"url":"http://discourse/t/poison-imperial-concubine-lean-city-lord-dont-gao-gao-c30/69537","translatorId":null,"publishTime":"2020-06-23T07:36:47","canonicalName":"c30","isPublish":true,"summary":"Early that morning, Gu Ziyan had caught a chill that made it difficult for him to get up.\n\nNot only did the guards of the mansion not care, they even sent the eldest young
 miss to stay in the side cou","chapterIndex":0,"brick":0,"originBrick":0,"discountRate":0.0,"type":"babelchain","words":1545,"isPremiumFree":false,"isLimitFree":false,"isBought":null,"isBorrowed":null,"isFree":false,"expireTime":null}
{"index":{"_id":"5596112c-d11c-4bca-aca8-cd5393f3cad1","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"last-chapter","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"applicationControlId":"5596112c-d11c-4bca-aca8-cd5393f3cad1","id":"75c0c2b3-c694-4dd8-9e40-439d10231548","bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","name":"C30","num":300000,"hasContent":true,"url":"http://discourse/t/poison-imperial-concubine-lean-city-lord-dont-gao-gao-c30/69537","translatorId":null,"publishTime":"2020-06-23T07:36:47","canonicalName":"c30","isPublish":true,"summary":"Early that morning, Gu Ziyan had caught a chill that made it difficult for him to get up.\n\nNot only did the guards of the mansion not care, they even sent the eldest young miss to stay in the side cou","chapterIndex":0,"brick":0,"originBrick":0,"discountRate":0.0,"type":"babelchain","words":1545,"isPremiumFree":false,"isLimitFree":false,"isBought":null,"isBorrowed":null,"isFree":false,"expireTime":null}
{"index":{"_id":"dd697927-fa0a-4e07-ac85-610c70aae618","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"last-chapter","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"applicationControlId":"dd697927-fa0a-4e07-ac85-610c70aae618","id":"75c0c2b3-c694-4dd8-9e40-439d10231548","bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","name":"C30","num":300000,"hasContent":true,"url":"http://discourse/t/poison-imperial-concubine-lean-city-lord-dont-gao-gao-c30/69537","translatorId":null,"publishTime":"2020-06-23T07:36:47","canonicalName":"c30","isPublish":t
rue,"summary":"Early that morning, Gu Ziyan had caught a chill that made it difficult for him to get up.\n\nNot only did the guards of the mansion not care, they even sent the eldest young miss to stay in the side cou","chapterIndex":0,"brick":0,"originBrick":0,"discountRate":0.0,"type":"babelchain","words":1545,"isPremiumFree":false,"isLimitFree":false,"isBought":null,"isBorrowed":null,"isFree":false,"expireTime":null}
{"index":{"_id":"df9d5b21-4223-43bb-9fe3-53ea0386463a","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"last-chapter","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"applicationControlId":"df9d5b21-4223-43bb-9fe3-53ea0386463a","id":"64ed977e-7b0e-4b9e-8d42-298cc24f678a","bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","name":"C24","num":240000,"hasContent":true,"url":null,"translatorId":null,"publishTime":"2020-06-23T07:36:47","canonicalName":"c24","isPublish":true,"summary":"They were trapped within the Prime Minister's Estate and relied on the Seventh Prince as their backer.\n\nIt is not a long-term strategy to be in control of others for long periods of time.\n\nShe did rem","chapterIndex":0,"brick":0,"originBrick":0,"discountRate":0.0,"type":"babelchain","words":1381,"isPremiumFree":false,"isLimitFree":false,"isBought":null,"isBorrowed":null,"isFree":false,"expireTime":null}
{"index":{"_id":"75c0c2b3-c694-4dd8-9e40-439d10231548","routing":"2a093dce-7614-493b-969e-1ca6895ffbe0"}}
{"join":{"name":"last-chapter","parent":"2a093dce-7614-493b-969e-1ca6895ffbe0"},"applicationCo
ntrolId":"75c0c2b3-c694-4dd8-9e40-439d10231548","id":"75c0c2b3-c694-4dd8-9e40-439d10231548","bookId":"2a093dce-7614-493b-969e-1ca6895ffbe0","name":"C30","num":300000,"hasContent":true,"url":"http://discourse/t/poison-imperial-concubine-lean-city-lord-dont-gao-gao-c30/69537","translatorId":null,"publishTime":"2020-06-23T07:36:47","canonicalName":"c30","isPublish":true,"summary":"Early that morning, Gu Ziyan had caught a chill that made it difficult for him to get up.\n\nNot only did the guards of the mansion not care, they even sent the eldest young miss to stay in the side cou","chapterIndex":0,"brick":0,"originBrick":0,"discountRate":0.0,"type":"babelchain","words":1545,"isPremiumFree":false,"isLimitFree":false,"isBought":null,"isBorrowed":null,"isFree":false,"expireTime":null}
# Response:
{"took":9,"errors":true,"items":[{"index":{"_index":"book-indexer","_id":"2a093dce-7614-493b-969e-1ca6895ffbe0","_version":3,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2997,"_primary_term":1,"status":200},{"index":{"_index":"book-indexer","_id":"89e61ed6-4a82-4dea-8d97-c4a43a6cceb5","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '89e61ed6-4a82-4dea-8d97-c4a43a6cceb5'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=pricing-strategy}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"67658be3-f263-45cb-a478-c0867b10421a","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '67658be3-f263-45cb-a478-c0867b10421a'. Preview of field's value: '{parent=2a093dce-7614-493b-
969e-1ca6895ffbe0, name=strategy}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"3226a86a-473e-4a7a-8cce-7d51bd47a723","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '3226a86a-473e-4a7a-8cce-7d51bd47a723'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"507ac681-1b80-482b-bdb8-9511e318e0b3","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '507ac681-1b80-482b-bdb8-9511e318e0b3'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"5596112c-d11c-4bca-aca8-cd5393f3cad1","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id '5596112c-d11c-4bca-aca8-cd5393f3cad1'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"dd697927-fa0a-4e07-ac85-610c70
aae618","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id 'dd697927-fa0a-4e07-ac85-610c70aae618'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"df9d5b21-4223-43bb-9fe3-53ea0386463a","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id 'df9d5b21-4223-43bb-9fe3-53ea0386463a'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}},{"index":{"_index":"book-indexer","_id":"75c0c2b3-c694-4dd8-9e40-439d10231548","status":400,"error":{"type":"mapper_parsing_exception","reason":"failed to parse field [join] of type [text] in document with id
'75c0c2b3-c694-4dd8-9e40-439d10231548'. Preview of field's value: '{parent=2a093dce-7614-493b-969e-1ca6895ffbe0, name=last-chapter}'","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:9"}}}]}

Hi @liguobao,
Your C# example looks to be incomplete, could you create a complete minimal reproducible example of the problems you're having and post them as a new issue please?


[server][router] Replace synchronized with CAS in TokenBucket::update to reduce contention

[server][router] Replace synchronized with CAS in TokenBucket::update to reduce contention
Just want to run the idea by everyone for feedback. Although based on the experiments this does not fix the latency issue that we're seeing.
How was this PR tested?

CI
Does this PR introduce any user-facing changes?

[x] No. You can skip the rest of this section.
[ ] Yes. Make sure to explain your proposed changes and call out the behavior change.

@sushantmane
Have you collected the latency spent on this function during the benchmarking?

Feel free to try this microbench with/without your change... but so far, the thinking is that TokenBucket is not a bottleneck...

For low-contention scenarios (few threads), both implementations perform similarly well. As contention increases, the CAS implementation shows slightly better performance and scalability. However, the performance gain of CAS over synchronized is not dramatic.
Benchmark with synchronized
Benchmark                                          (rcuPerSecond)  (tokensToConsume)  Mode  Cnt   Score   Error  Units
TokenBucketBenchmark.tokenBucketWithThreadCount1<PHONE_NUMBER>000                  1  avgt    3   0.012 ± 0.011  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount1<PHONE_NUMBER>000                100  avgt    3   0.012 ± 0.015  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount1          1000000                  1  avgt    3   0.050 ± 0.024  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount1          1000000                100  avgt    3   0.045 ± 0.040  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount2<PHONE_NUMBER>000                  1  avgt    3   0.107 ± 0.010  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount2<PHONE_NUMBER>000                100  avgt    3   0.099 ± 0.034  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount2          1000000                  1  avgt    3   0.148 ± 0.055  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount2          1000000                100  avgt    3   0.136 ± 0.021  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount4<PHONE_NUMBER>000                  1  avgt    3   0.389 ± 0.332  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount4<PHONE_NUMBER>000                100  avgt    3   0.281 ± 0.217  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount4          1000000                  1  avgt    3   0.347 ± 0.106  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount4          1000000                100  avgt    3   0.325 ± 0.045  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount8<PHONE_NUMBER>000                  1  avgt    3   1.179 ± 0.031  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount8<PHONE_NUMBER>000                100  avgt    3   1.081 ± 0.183  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount8          1000000                  1  avgt    3   0.784 ± 0.257  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount8          1000000                100  avgt    3   0.809 ± 0.019  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount16<PHONE_NUMBER>000                  1  avgt    3   2.332 ± 0.552  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount16<PHONE_NUMBER>000                100  avgt    3   2.197 ± 0.748  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount16         1000000                  1  avgt    3   1.045 ± 0.540  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount16         1000000                100  avgt    3   1.291 ± 0.114  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount32<PHONE_NUMBER>000                  1  avgt    3   5.976 ± 6.064  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount32<PHONE_NUMBER>000                100  avgt    3   4.334 ± 2.897  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount32         1000000                  1  avgt    3   3.024 ± 4.573  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount32         1000000                100  avgt    3   2.154 ± 0.571  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount64<PHONE_NUMBER>000                  1  avgt    3  12.554 ± 2.907  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount64<PHONE_NUMBER>000                100  avgt    3  14.865 ± 1.765  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount64         1000000                  1  avgt    3   5.123 ± 0.622  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount64         1000000                100  avgt    3   6.732 ± 2.387  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount128<PHONE_NUMBER>000                  1  avgt    3  23.245 ± 11.758  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount128<PHONE_NUMBER>000                100  avgt    3  24.848 ± 28.493  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount128         1000000                  1  avgt    3  11.619 ±  2.024  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount128         1000000                100  avgt    3  11.881 ±  3.701  us/op

Benchmark with CAS
Benchmark                                          (rcuPerSecond)  (tokensToConsume)  Mode  Cnt   Score   Error  Units
TokenBucketBenchmark.tokenBucketWithThreadCount1<PHONE_NUMBER>000                  1  avgt    3   0.012 ± 0.016  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount1<PHONE_NUMBER>000                100  avgt    3   0.011 ± 0.004  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount1          1000000                  1  avgt    3   0.043 ± 0.004  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount1          1000000                100  avgt    3   0.044 ± 0.004  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount2<PHONE_NUMBER>000                  1  avgt    3   0.092 ± 0.042  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount2<PHONE_NUMBER>000                100  avgt    3   0.119 ± 0.057  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount2          1000000                  1  avgt    3   0.134 ± 0.023  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount2          1000000                100  avgt    3   0.147 ± 0.052  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount4<PHONE_NUMBER>000                  1  avgt    3   0.303 ± 0.138  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount4<PHONE_NUMBER>000                100  avgt    3   0.304 ± 0.124  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount4          1000000                  1  avgt    3   0.309 ± 0.324  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount4          1000000                100  avgt    3   0.287 ± 0.095  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount8<PHONE_NUMBER>000                  1  avgt    3   0.770 ± 0.233  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount8<PHONE_NUMBER>000                100  avgt    3   0.767 ± 0.062  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount8          1000000                  1  avgt    3   0.621 ± 0.109  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount8          1000000                100  avgt    3   0.714 ± 0.119  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount16<PHONE_NUMBER>000                  1  avgt    3   2.442 ± 0.218  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount16<PHONE_NUMBER>000                100  avgt    3   1.952 ± 0.359  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount16         1000000                  1  avgt    3   1.302 ± 0.096  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount16         1000000                100  avgt    3   1.118 ± 0.434  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount32<PHONE_NUMBER>000                  1  avgt    3   6.113 ± 7.613  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount32<PHONE_NUMBER>000                100  avgt    3   4.932 ± 1.030  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount32         1000000                  1  avgt    3   2.449 ± 0.455  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount32         1000000                100  avgt    3   1.824 ± 0.334  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount64<PHONE_NUMBER>000                  1  avgt    3  11.493 ± 7.086  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount64<PHONE_NUMBER>000                100  avgt    3   9.289 ± 3.053  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount64         1000000                  1  avgt    3   4.232 ± 1.228  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount64         1000000                100  avgt    3   5.036 ± 0.383  us/op

TokenBucketBenchmark.tokenBucketWithThreadCount128<PHONE_NUMBER>000                  1  avgt    3  24.300 ± 2.740  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount128<PHONE_NUMBER>000                100  avgt    3  17.554 ± 7.263  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount128         1000000                  1  avgt    3  13.262 ± 4.020  us/op
TokenBucketBenchmark.tokenBucketWithThreadCount128         1000000                100  avgt    3  12.398 ± 4.895  us/op

Feel free to try this microbench with/without your change... but so far, the thinking is that TokenBucket is not a bottleneck...

For low-contention scenarios (few threads), both implementations perform similarly well. As contention increases, the CAS implementation shows slightly better performance and scalability. However, the performance gain of CAS over synchronized is not dramatic.

SG. By the way, I put this microbench in PR #1122. We can merge it if you think it's useful.

However, the performance gain of CAS over synchronized is not dramatic.

Hence, closing this PR!


Node-fetch allows setting forbidden headers

https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
Results in bugs like #1780

https://fetch.spec.whatwg.org/#forbidden-request-header


Validate we can rename option sets and their values properly

✅ No public API change.

✅ No public API change.


Using a cell value for the Wikidata-Item description gives error "schema is incomplete"

For some Wikidata uploads I want to use item-depended created descriptions from a specific column in openrefine. if I drag the column to the Description field it is not possible to save the schema or to change to preview or issues tab.
clicking on save schema occurs the error "Your schema is incomplete so it cannot be saved yet."
(i am working with open refine 3.0 rc1) - maybe i'm running in an error during schema editing?

@LibrErli that's curious… could you give a screenshot of your schema?

@LibrEli thanks a lot for the analysis! However I cannot reproduce the problem on my side, neither with Firefox nor with Chromium. May I ask you what configuration you use? (operating system and browser)

@wetneb i am running open refine 3 rc 1 on ubuntu 18.04 firefox 61

I can reproduce this. I think it specifically happens when you delete the text from the Description field, keep the cursor in the field and drag the column into the schema without the cursor leaving the field (I'm guessing this leads the field not being updated and so being treated as empty when you try to save the schema?)

@ostephens great, thanks a lot for the video, I will investigate.

same issue here

I think it would be nice to fix that soon, so tentatively putting this on the 3.6 milestone to remind myself to have a look at it before a release (but no promises…)

I will probably not have time to work on this soon sadly, so unassigning me to leave the floor open. The improvement of the error message when the Wikibase schema is deemed incomplete should at least make this less confusing for users.


crash from webrtc framework

hi, i got crash from webrtc framework when calling, but it does not crash my app, just back to my previous 2 screen, can u give some advices to solve this? Thanks

Please see #88 and if you still think it's an issue with CustomActivityOnCrash, please provide a sample project.


Customize --cache-to, --cache-from options for build-docker-image

Additional Dockerfiles for some of targets (f.e MacOS) require building docker images from cross-toolchains repositoriy, which is supported by build-docker-image command.
When running build-docker-image on CI environments, such as Github Actions, the process could be made greatly faster if cache from previous build is stored. The official support of buildx system includes f.e. possibility to use Github Actions Cache directly - https://docs.docker.com/build/cache/backends/gha/ , or for other CI systems it is also possible to use local cache in folder - https://docs.docker.com/build/cache/backends/local/ . However, such configurations require passing --cache-to and --cache-from options to docker build command, which is currently not customizeable by build-docker-image command supplied by cross.
This PR intends to fix this issue by introducing two new options for  build-docker-image, namely  --cache-to and --cache-from. Option names match those of docker CLI and only used unless other configurations do not contradict these new options, f.e. when push is specified to true, cache-to would still be using inline cache, as it used to before these changes. Same goes for --cache-from, which will not be used in case if no_cache is set to true or if engine does not support cache from type.

Applied suggestions
bors r+

bors r+ thanks again!
the failures are due to something else

spurious network error, lets try again
bors retry

Thanks a lot for quick response and help with the bot (wouldn't know what to touch and where)!
Now I can switch from using my own repo to the upstream, great :)


feat: fix zkSync SDK documentation website

The old document website cannot browse, I think https://docs.zksync.io/ is correct website.

The document website is 404


[Backport] Add hashCode and equals to UniformGranularitySpec

Also add hashCode != 0 to AllGranularity and NoneGranularity

Backport #1824

:+1:

Is this 0.8.2 or 0.8.3?

lol, doh... supposed to be 0.8.3 but I guess we don't have a branch yet, huh

closing for now until there's a proper branch to put the PR to.


Can we enable :require_sign_on_paper option from create_envelope_from_document?

I'm trying to require a wet signature for signers using create_envelope_from_document. However, I noticed that the requireSignOnPaper option is only applied when using a composite template (set in get_inline_signers).
I imagine we could simply add that logic to get_signers above this line
Before I make the change was this an oversight or a true limitation of DocuSign's API? I don't have a production API key yet so the feature seems to be turned off when I test the change on the Sandbox from my forked version.

I talked with an enterprise guy at DocuSign and he's pretty confident that creating an evenlope from a document (rather than a template) can still handle the "requireSignOnPaper" option. I'll create another PR and let you guys decide if it's appropriate or not.


Fixed #25083 Add SessionAuthenticationMiddleware to auth topic

The (new in 1.7) django.contrib.auth.middleware.SessionAuthenticationMiddleware is an incredibly important security improvement that insures a user's other sessions are logged out after a password change.  We should add it to the >1.7 docs on auth installation as a default.

This is for all docs >1.7 if this gets merged it should be merged into the 1.7 and 1.8 branches.

Please open a new PR against the master branch. We'll take care of the backporting.

Ok, thank you: https://github.com/django/django/pull/4964


Use isort and black on code.

Remove unused imports in tests.
Bump the fix version.
Update the dev phony.

I'll rebase in a bit.

Hehe, okay I'm behind a commit again. I'll come back to it when things slow down.


WAT70 when building Node.js Cloud Service project using msbuild

I receive a WAT70 error when building an Azure Cloud Service Node.js project from the commandline using msbuild.
Dev Environment: Visual Studio 2015, MS Azure Tools 2.7 and NTVS 1.1RC VS2015
Steps to reproduce:

Open VS, and select File- > New -> Project
Select 'Other Languages' -> JavaScript -> Node.js and Select 'Cloud Service' as project type
Select a Web Role project to be included and successfully build it in VS.
Open a 'MSBuild Command Prompt for VS2015' and browse to the directory that contains the Solution file of the project that I just created
-Run: MSBuild /target:Publish

If I copy a dummy exe into the project then the build / publish step works.. However this is not acceptable in production.
See detailed error output below...
======= MS Build output  =======
Microsoft (R) Build Engine version 14.0.23107.0
Copyright (C) Microsoft Corporation. All rights reserved.
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 03/09/2015 15:26:53.
Project "C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1.sln" on node 1 (Publish target(s)).
ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
The target "MvcBuildViews" listed in a BeforeTargets attribute at "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets (843,131)" does not exist in the project, and will be ignored.
Project "C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1.sln" (1) is building "C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1\AzureCloudService1.ccproj" (2) on node 1 (Publish target(s)).
ResolveServiceDefinition:
Source Service Definition: ServiceDefinition.csdef
Target Service Definition: bin\Debug\ServiceDefinition.csdef
ResolveServiceConfiguration:
Target Profile: Cloud
Service Configurations: ServiceConfiguration.Local.cscfg;ServiceConfiguration.Cloud.cscfg
Looking for a service configuration file named: ServiceConfiguration.Cloud.cscfg
Source Service Configuration: ServiceConfiguration.Cloud.cscfg
Target Service Configuration: bin\Debug\ServiceConfiguration.cscfg
FindServiceDefinition:
ServiceDefinition in bin\Debug\ServiceDefinition.csdef
FindServiceConfiguration:
ServiceConfigurationFile is bin\Debug\ServiceConfiguration.cscfg
CopyServiceModel:
Running CopyServiceModel target
Copying the service configuration.
Copying file from "ServiceConfiguration.Cloud.cscfg" to "bin\Debug\ServiceConfiguration.cscfg".
Copying the service definition.
Copying file from "ServiceDefinition.csdef" to "bin\Debug\ServiceDefinition.csdef".
ValidateRoleProjects:
Web Project        is ..\WebRole1\WebRole1.njsproj
Worker Project     is
ResetTargetNames:
Reset the targetDir      to csx\Debug
Reset the TargetName     to ServiceDefinition
Reset the TargetExt      to .rd
Reset the TargetFileName to ServiceDefinition.rd
Reset the TargetPath     to csx\Debug\ServiceDefinition.rd
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Windows Azure Tools\2.7\Microsoft.WindowsAzure.targets(1329,5): error : WAT070 : The referenced assembly C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.exe was not found. Please make sure to build the role project that produces this assembly before building this Microsoft Azure Cloud Service Project. [C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1\AzureCloudService1.ccproj]
Done Building Project "C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1\AzureCloudService1.ccproj" (Publish target(s)) -- FAILED.
Project "C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1.sln" (1) is building "C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.njsproj" (3:3) on node 1 (Publish target(s)).
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(4874,5): error MSB3094: "DestinationFiles" refers to 2 item(s), and "SourceFiles" refers to 1 item(s). They must have the same number of items. [C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.njsproj]
Done Building Project "C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.njsproj" (Publish target(s)) -- FAILED.
Done Building Project "C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1.sln" (Publish target(s)) -- FAILED.
Build FAILED.
"C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1.sln" (Publish target) (1) ->
"C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1\AzureCloudService1.ccproj" (Publish target) (2) ->
(VerifyRoleReferences target) ->
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Windows Azure Tools\2.7\Microsoft.WindowsAzure.targets(1329,5): error : WAT070 : The referenced assembly C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.exe was not found. Please make sure to build the role project that produces this assembly before building this Microsoft Azure Cloud Service Project. [C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1\AzureCloudService1.ccproj]
"C:\Users\MJ\Desktop\AzureCloudService1\AzureCloudService1.sln" (Publish target) (1) ->
"C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.njsproj" (Publish target) (3:3) ->
(_CopyFilesToPublishFolder target) ->
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(4874,5): error MSB3094: "DestinationFiles" refers to 2 item(s), and "SourceFiles" refers to 1 item(s). They must have the same number of items. [C:\Users\MJ\Desktop\AzureCloudService1\WebRole1\WebRole1.njsproj]
0 Warning(s)
2 Error(s)

Time Elapsed 00:00:00.58

May be related to https://github.com/Microsoft/PTVS/issues/128

Indeed, we run into the same issues that PTVS has with deployment scenarios. Fact is we pretend to be .NET in a lot of places, and apparently we're not convincing enough here. We need to work with partner teams to make any progress on this issue.

Same issue here. No one ever deployed with VSTS an nsproj cloud service? Any progress since Sep 2015?
Regards,
Michael

Same issue here, I'm not able to automate the build of PTVS (Python Django Cloud Service application) using MSBuild V14.0.
Build FAILED.
"C:\Test\LexBadgrAzureCloudService\LexBadgrAzureCloudService.sln" (publish targ
et) (1) ->
"C:\Test\LexBadgrAzureCloudService\LexBadgrAzureCloudService\LexBadgrAzureCloud
Service.ccproj" (Publish target) (2) ->
(VerifyRoleReferences target) ->
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Windows Azure Too
ls\2.7\Microsoft.WindowsAzure.targets(1329,5): error : WAT070 : The referenced
assembly C:\Test\AzureCloudService\pythonwebapp\pythonwebapp.exe was not found.
Please make sure to build the role project that produces this assembly before
building this Microsoft Azure Cloud Service Project. [C:\Test\AzureClou
dService\AzureCloudService\AzureCloudService.ccproj]

@satyarapelly You'll want to follow up with PTVS instead here: https://github.com/Microsoft/PTVS/issues
NTVS and PTVS share a common codebase (common as in copy and pasted between the projects 😭 😭 😭 ) so they'll have to fix this on their side.

@mjbvz - to be fair, it's not copy pasted - it's in a git subtree, it's just that we tend not to sync very often, so for one-off fixes, it tends to be easier to copy/paste rather ;-)

Closing while we figure out what to do with Cloud Services.

@paulvanbrenk , Have you figured out what to do with Cloud Services already?
As a workaround: Could we use the Visual Studio feature "Publish" through devenv somehow , instead of calling MSBuild directly (as it does not yet work for NodeJS ACS projects) ? If this is possible, could you provide some details how to achieve it ?

@ross-bohr The "publish" feature also seems to invoke the build step, we're currently leaning to writing up some documentation on how to do this using the Azure CLI.


weird UX

the ledger UX uses the left and right buttons alone to navigate and both together to navigate, however in windows hello the authorize unlock if enabled is using one button to accept and another to deny which is kinda weird in my opinion considering it contradicts the entire UX of ledger

Yeah, the app hasn't been updated to our new flow system, as Microsoft said it would deprecate Hello. It has silently backtracked on this topic since, without us noticing. We'll update the app _soon_®

they have backtracked on it. oh lol, ms playing moving target and Schrödinger yet again, kinda sux

Here you go: https://github.com/LedgerHQ/app-windows-hello/commit/d6a6ae7c80e1353e1b484539a3072923338c4222
1.2.0 is available on Ledger Live :+1:


Storage Blob Data Owner

Hi,
I just figured out that Storage Blob Data Owner  is the correct option to select to connect to ADLS Gen2. (at least if you connect Dataverse to ADLS Gen2, which is what I have done).
The classic "owner" isn't working.
Best regards,
Marco

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 57f28e6c-a22d-484b-6599-9b17e6c011f0
Version Independent ID: 307cb997-5d54-a43c-f278-5247769e682b
Content: Configuring dataflow storage to use Azure Data Lake Gen 2 - Power BI
Content Source: powerbi-docs/transform-model/dataflows/dataflows-azure-data-lake-storage-integration.md
Service: powerbi
Sub-service: pbi-dataflows
GitHub Login: @davidiseminger
Microsoft Alias: davidi

@MCaviezel - thanks for the input. Assigning to the writer to make an update.

Thanks for the clarification! I've updated that in the article.


Return real error from Erase()

Returns the real error from Erase() so, for example, the caller can check os.IsNotExist(err)
Removes a double negation (!!p = p)

Sorry the PR took so long. :-)

I was sure the !!p was there for a reason. But I can't possibly conjure up what it was. So, LGTM. Thanks.


DeepStateRedirect for states with parameters

Take the following state definition
.state('person', {
    url : '/person/:person_id',
    controller: 'PersonDetailsCtrl',
    templateUrl: 'templates/record/record.html',
    deepStateRedirect : true
})

My goal was switching between different persons and keeping their state context saved. But this does not work. With deepStateRedirect enabled, the browser url is not updated if switched between different persons like /person/123 and /person/445
If the first opened person was /person/123[/anything/else], there is no chance to open /person/445 - the url will switch back to /person/123[/anything/else] automatically.

I think we should document this new syntax into that

@readme42 yes, they're in gh-pages branch.  Would love a PR for docs!


Grammar json5, input example2.json5 yields parse error.

Grammar: JSON5.g4
Input: example2.json5
commit: https://github.com/mike-lischke/antlr-ng/tree/f67296c701b7263a303db61677e8aab37312bce5
Parse output:
ken@DESKTOP-DL44R7B:~/grammars-v4/json5$ cd Generated-Antlr4ng/
ken@DESKTOP-DL44R7B:~/grammars-v4/json5/Generated-Antlr4ng$ npx tsx Test.js ../examples/example2.json5
line 3:12 missing ':' at ''and you can quote me on that''
line 4:16 missing ':' at ''I can use "double quotes" here''
line 5:14 missing ':' at '"Look, Mom! \\nNo \\n's!"'
line 7:15 missing ':' at '0xdecaf'
line 8:23 missing ':' at '.8675309'
line 8:46 missing ':' at '8675309.'
line 9:16 missing ':' at '+'
line 10:17 missing ':' at ''in objects''
line 10:38 missing ':' at '['
TypeScript 0 ../examples/example2.json5 fail 0.024
Total Time: 0.025
ken@DESKTOP-DL44R7B:~/grammars-v4/json5/Generated-Antlr4ng$

Interesting: all grammars from this and the other 2 reports use the `p{L}˙ Unicode category. Do you know another grammar with that in any of the lexer rules which works?

Interesting: all grammars from this and the other 2 reports use the `p{L}˙ Unicode category. Do you know another grammar with that in any of the lexer rules which works?

$ fgrep . -R -e '\p{L}' --include='*.g4' | grep -v Generated
./edn/edn.g4:    : [a-zA-Z\p{L}]
./elixir/ElixirLexer.g4:ATOM: ':' ( [\p{L}_] [\p{L}_0-9@]* [!?]? | OPERATOR | SINGLE_LINE_STRING | SINGLE_LINE_CHARLIST);
./elixir/ElixirLexer.g4:VARIABLE: [\p{Ll}_] [\p{L}_0-9]* [!?]?;
./golang/GoLexer.g4://[\p{L}] matches any kind of letter from any language
./golang/GoLexer.g4:fragment UNICODE_LETTER: [\p{L}];
./javascript/ecmascript/CSharp/ECMAScript.g4:    : [\p{L}]
./javascript/ecmascript/CSharpSharwell/ECMAScript.g4:    : [\p{L}]
./javascript/ecmascript/ECMAScript.g4:    : [\p{L}]
./javascript/ecmascript/Go/ECMAScript.g4:    : [\p{L}]
./javascript/ecmascript/JavaScript/ECMAScript.g4:    : [\p{L}]
./javascript/ecmascript/Python3/ECMAScript.g4:    : [\p{L}]
./javascript/ecmascript/TypeScript/ECMAScript.g4:    : [\p{L}]
./javascript/javascript/JavaScriptLexer.g4:fragment IdentifierStart: [\p{L}] | [$_] | '\\' UnicodeEscapeSequence;
./javascript/jsx/JavaScriptLexer.g4:fragment IdentifierStart: [\p{L}] | [$_] | '\\' UnicodeEscapeSequence;
./javascript/typescript/TypeScriptLexer.g4:fragment IdentifierStart: [\p{L}] | [$_] | '\\' UnicodeEscapeSequence;
./json5/JSON5.g4:    : [\p{L}]
./python/python3/Python3Lexer.g4:    | [\p{L}]
./rust/RustLexer.g4:// [\p{L}\p{Nl}\p{Other_ID_Start}-\p{Pattern_Syntax}-\p{Pattern_White_Space}]
./rust/RustLexer.g4:fragment XID_Start: [\p{L}\p{Nl}] | UNICODE_OIDS;
./vba/vba6/vba.g4:    : [A-Z_\p{L}]
./vba/vba6/vba.g4:    : [A-Z0-9_\p{L}]
./z/ZLexer.g4:    [\p{L}] // Letter
./z/ZLexer.g4:fragment ID0 : [\p{L}] | '_';
12/30-11:19:36 ~/issues/antlr-ng-grammars-v4

They all "work" I suppose, but who knows.

Probably exactly the same problem like #26.


Add support for accepting larger bodies

Review please and parseBody() should have some incremental parsing mechanism (TODO).
\ping @kelunik

Do not merge yet (tests are failing because of Artax bug)
Also, https://github.com/amphp/aerys/pull/84/files#diff-c6efd2089538af142c51173ed102200eR170 needs fixing … just not sure how to solve yet.

Ready to merge now.
@kelunik Any API suggestions or is it fine as is?

Don't have time to have a deeper look at it right now.

Merged via e369f97719b256468a6a4de600c8b3a87e3a2de8


Implement DateTimeBasicsLog

Fixes #94

This is great, really useful documentation for starting with these modules!
The definition of mkTime :: Int -> Int -> Int -> Int -> Maybe Time and co look so generally useful, that would it be worth submitting them as PRs to the library itself?

The definition of mkTime :: Int -> Int -> Int -> Int -> Maybe Time and co look so generally useful, that would it be worth submitting them as PRs to the library itself?

Probably. Int arguments don't clarify what their corresponding values are. An example in the docs above such a function would probably clear that up.


Allow events to be cancelled in the 'before' callbacks

Is it too much to ask to write some explanation how this should be used and documented?
Also I think I see a typo? The second test only continues if default was prevented, is that intentional?

@nathanvda Sorry, I was in the middle of writing up the explanation in #203:

It allows the before events to call e.preventDefault() to cancel any further processing.
My particular use case is for new records, if a user enters anything into a nested attribute, nothing stops them from accidentally deleting that row with all their "unsaved" data. And using confim:, I can't add the logic of checking if they've entered anything into the row. Otherwise it's a pain to have to confirm blank rows.
So, in my case, I'm checking if a user has selected anything in select dropdowns by adding up all the selected indexes, and if the sum is > 0, give them a confirm box. Calling e.preventDefault() if the confirm returns false is an easy solution.

@nathanvda I would be happy to update the README in this PR as well!

Yes, I really like the cleanliness and simplicity of this solution. If you would update the README I would greatly appreciate that :+1: :clap: :clap:

@nathanvda In testing, I found a typo with (jQuery.event -> jQuery.Event), which I fixed. I also updated the README, I hope that meets the standards you require for documentation.

Yes! Awesome work, thank you :+1:

Great! I'm glad to help out. Great gem!

The solution above works with default confirm from the browser. However, it doesn't work with sweetalert2 which uses promise. Do you guys have any clues dealing with this?

Please open a new ticket and provide some code-samples and links or explanations (what is sweetalert2? what are you trying, expecting and what are you getting).

Thanks for reply @nathanvda. I'll open a new ticket soon.