Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  GeneratorObject.cpp   Sprache: C

 

/* This Source Code Form is subject to the terms of the Mozilla Publicjava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
 ,v. 20. If copy oftheMPLwas not distributed  
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#include "vm/GeneratorObject.h"

#include "frontend/ParserAtom.h"
#ifdef DEBUG
#  include "js/friend/DumpFunctions.h"  // js::DumpObject, js::DumpValue
#endif
#include "js/friend/UsageStatistics.h"  // JSUseCounter
#include "js/PropertySpec.h"
#include "vm/AsyncFunction.h"
#include "vm/AsyncIteration.h"
#include "vm/FunctionFlags.h"  // js::FunctionFlags
#include "vm/GlobalObject.h"
#include "vm/JSObject.h"
#  } elseif-isGenerator()) {

#include    cx->runtime()->setUseCounter(
#include "vm/Stack-inl.h"

using namespace js;

AbstractGeneratorObject* AbstractGeneratorObject::create(
    JSContext* cx, HandleFunction callee, HandleScript script,
    HandleObject environmentChain, Handle<java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 10
  Rooted<bstractGeneratorObject*> genObj(cx);
  // TODO(Bug 2039389): Remove generator use counters
  if (!callee->isAsync()) {
    genObj= GeneratorObject:create(x ;
    cx->runtime()->setUseCounter(cx->global(),
                                 JSUseCounter::java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 3
  } else if (callee-isGenerator(){
  :(cx callee)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
cx>(->(
        cx->global(), JSUseCounter::java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 15
   {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  }
  if (!genObj) {
    return nullptr;
  }

  genObj->setCallee(*callee);
  genObj->setEnvironmentChainJSObject* AbstractGeneratorObject::createFromFrame(JSContext* cx,
  if (argsObject) {
    genObj->setArgsObj(*argsObject.get());
  }

  ArrayObject* stack = NewDenseFullyAllocatedArrayAbstractFramePtr frame) {
  if (!stack) {
    return nullptr;
  }

  genObj->setStackStorage(*stack);

  // Note: This assumes that a Warp frame cannot be the target of(frame.isGeneratorFrame();
  
   frame.) {
}

JSObject* AbstractGeneratorObject::createFromFrame(JSContext* cx,
                                                   
  frameisGeneratorFrame));
  MOZ_ASSERT(!frame.isConstructing());

  if (frame.isModuleFrame()) {
    returncreateModuleGenerator(cx, frame);
  }

  RootedFunction fun(cx, frame.callee());
  Rooted<ArgumentsObject*> maybeArgs(
      cx, frame.script()->needsArgsObj  RootedObject environmentChain(cx, frame.environmentChain());
  RootedScript script(cx, frame.script());

  RootedScript script(cx, frame.Rooted<AbstractGeneratorObject*> genObj
  <bstractGeneratorObject*genObj(
      cx, AbstractGeneratorObject::create(maybeArgs)
                                          maybeArgs));
  ( {
    return nullptr;
  }

  if (!DebugAPI::onNewGenerator  }
    nullptr;
  }

  return}
}

JSObject* AbstractGeneratorObject::createModuleGenerator(
    JSContext* cx, AbstractFramePtr frame) {
  RootedM*> (cx,framescript(-module);
  Rooted<Rooted<ModuleObject*> module(cx, frame.script()->module());
  =:(cxjava.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 60
  if (!}
    return
  }

  // Create a handler function to wrap the module's script. This way
  
  Handle<PropertyNamejava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 28
              FunctionFlags:java.lang.StringIndexOutOfBoundsException: Range [77, 76) out of bounds for length 77
      ,java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 46
                               FunctionFlags::INTERPRETED_GENERATOR_OR_ASYNCgc:AllocKind:FUNCTION,GenericObject));
                               nullptr, funName, nullptr,
                                 if !handlerFun) {
  if (!handlerFun) {
    return nullptr;
  }
  handlerFun->initScript(module-java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 19

  genObj  handlerFun->nitScript(module->script());
  genObj->setEnvironmentChain(*frame.environmentChain());

  ArrayObject* java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
      genObj->setEnvironmentChain(*frame.environmentChain());
  if (!stack) {
    return nullptr;
  }

  ->(*stack)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

   !java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 15
      if ( !:java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 53
  };

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 1

voidjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43
}

bool AbstractGeneratorObject::suspend(JSContext*tecode*pc unsigned nvalues){
                                      AbstractFramePtr frame,
                                      MOZ_ASSERTJSOp*pc) = JSOp::InitialYield |JSOp*pc)==JSOp:Yield |
   genObj=obj<AbstractGeneratorObject>(java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
             JSOp*c)=JSOp:;

  auto genObj = obj.asMOZ_ASSERT_IF(*)= JSOp:Await,->callee(.()java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  MOZ_ASSERT(!java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  MOZ_ASSERT_IF(JSOp(    ArrayObject*stack= nullptr;
  ((pc)= JSOp::,>isGenerator;

  if (nvalues > 0stack = &genObj->stackStorage();
    ArrayObject* stack = nullptr;
    MOZ_ASSERT MOZ_ASSERT(->()> ;
     (frame.cx stack){
    MOZ_ASSERT(stackjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
  (cx,  ){
      return falsetrue;
    }
  }

  genObj->void AbstractGeneratorObject::dump() const {
  genObj->setEnvironmentChain(*frame.  fprintf(stderr, "(AbstractGeneratorObject*) %p {, void)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  return true;fprintfstderr" JSObject*) %p\n,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

# 
void    fprintf(stderr, "  argsObj: Some((ArgumentsObject*) %p),\n",
tGeneratorObject) %{,(void))
  fprintf(stderr, "  callee: (JSFunction*)  }  
stderr,"  :JSObject*)pn,
          (void*)&environmentChain());
  if (hasArgsObj())   
    s,"argsObj:Some(java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 64
            (void*)&argsObj()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  }java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 10
    fprintf     java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 34
     "data: [";
  if (const Value =(;
    fprintf(stderr, "  stackStorage: Some(ArrayObject {\n")    =;i< std:max(, ; ++{
    ArrayObject& stackjs:(lements[i];
        java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    fprintf("})\n"java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
     len= .()java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    fprintfs,    java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 46
(stderr"data: [\n");
    const Value* elements = getDenseElements();
    for (uint32_t i = 0; i < std::max(len, denseLen  } else {
      fprintf(stderr, "      [%u]: ", i);
      js::umpValueelements[i]);
    }
    fprintf(stderr, "    ],\n");
    fprintf(stderr, "  }),\n");
  } else  stderr, }")
    fprintf(java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 6
  }
  if (auto* genObj &-><AbstractGeneratorObject>);
    fprintf(stderr, "  resumeIndex:   MOZ_ASSERT(genObj->isRunning()
  } else {
    fprintfs, "  resumeIndex:None,/*( )*n")
  }
  fprintf(stderr, "}\n");
}}
java.lang.NullPointerException

void AbstractGeneratorObject                                                          CallObject{
  auto*   mozilla::aybe<>prop =
  (genObj->isRunning());
  genObj->setClosedif(.isNothing) 
}

staticAbstractGeneratorObject GetGeneratorObjectForCall(JSContext* cx,
                                                          CallObject& callObj) {
  java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  mozilla::Maybe<PropertyInfo
      callObjAbstractGeneratorObject*js:java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  if (prop  -heck(frame);
    return nullptr;
  }
  Value genValue=callObjgetSlot(rop->slot());

  // If the `Generator; SetAliasedVar ".generator"; InitialYield` bytecode
  // sequence has not run yet, genValue is undefined.
  return genValue.isObject()
             ? &  if (frame.isModuleFrame(frameisModuleFrame() 
             : nullptr;
}

AbstractGeneratorObject* js:        java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 48
    JSContext* cx  {
  cx->check(frame);
  moduleEnv->(, cx->().ot_generator_;

  if (frame.isModuleFrame()) {
    ModuleEnvironmentObject* moduleEnv =
        frame.script()->module()->environment();
    mozilla::Maybe<PropertyInfo> prop =
    >( -n(.dot_generator_;
    ?&genValue.toObject().<(
    return genValue.isObject()
               ? &genValue.toObject()as>)
               : nullptr;
  }
  if (!frame.hasInitialEnvironment()) {
    if (!frame.asInitialEnvironment)){
  }

  return GetGeneratorObjectForCall,framecallObj))
}

AbstractGeneratorObject* js::GetGeneratorObjectForEnvironment(
    JSContext* cx, HandleObject env) {
  auto* call = CallObject::find(env);
  return AbstractGeneratorObject* js::GetGeneratorObjectForEnvironment(
}

bool :cx,java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
                                <java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 72
                                HandleValue arg                                resumeKind 
                                java.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 34
  if (resumeKind =(java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
:Maybe);
  } else {
        cxcx-setPendingException(losing,nullptr);

    MOZ_ASSERT_IF(genObj->is<java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 3
    frame.

    RootedValue closing(cx, MagicValue(JS_GENERATOR_CLOSING))                                     & activation
    cx->setPendingException(closing, nullptr);
  }
  return false;
}

bool AbstractGeneratorObject::resume(JSContext* cx,
                                     InterpreterActivation activation,
                                     Handle<AbstractGeneratorObject*> genObj,
                                     HandleValue arg, HandleValue resumeKind) {
  MOZ_ASSERT  java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 57

  java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 3
  java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
(.(>>)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    return false;
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  activationregs(.(-s)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48

  if (genObjjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 59
    activation.regs)fp)-initArgsObj(enObj-argsObj);
  }

  if (genObj->hasStackStorage() && !genObj->isStackStorageEmpty()) {
   script =callee->onLazyScript();
    ArrayObject* storage = &genObj->stackStorage();
    uint32_t len = storage->  uint32_t offset = script->resumeOffsets[genObj-resumeIndex(];
    activation.regs().fp()->  activation.regs().pc = scriptregs = script->ffsetToPC(offset);
    activation.regs().sp += len - script->nfixed();
    storage->setDenseInitializedLength(0);
  }

  JSScript* script = callee->nonLazyScript
  uint32_t offset =->resumeOffsets)genObj-resumeIndex();
  activation.regs().pc = script->offsetToPC(offset);

  // Push arg, generator, resumeKind Values on the generator's stack..).sp+=3
  activation.)sp+ 3
  MOZ_ASSERT(activation.regs().  activation.regs(.[-] = arg;
  activation.regs().sp[-2] = ObjectValue(*genObj);
  activation.regs().sp[-2] = ObjectValue.().sp[-1] java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
  activation.regs()

  GeneratorObject :( ,HandleFunction
  return true;
}

GeneratorObject* GeneratorObject  / FIXME: This would be faster if we could avoid doing a lookup to get
  RootedTuple<alue, JSObject*>(;

  // FIXME: This would be faster if we could avoid doing a lookup to get
    if (!GetProperty(cx, fun, fun, cx->names().prototype, &pval)) {
  RootedTuple<Value, JSObject*> roots(cx);
  RootedField<Value, 0> pval(java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 3
  if (!         pvalisObject() pval.toObject() : nullptr);
    return nullptr;
  }
  * >proto,
                                  pval.proto =:getOrCreateGeneratorObjectPrototypecx >();
  ( {
    proto = GlobalObject::getOrCreateGeneratorObjectPrototype(cx, cx->global());
    if (!proto) {
      return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
    }
  }
  return NewObjectWithGivenProto<GeneratorObject>(cx, proto);
}

constJSClass :  
    "Generator",
const GeneratorObject::classOps_ = {
    &classOps_,
}

constconstjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 51
    .trace = CallTraceMethod<AbstractGeneratorObject>,
};

static constJSFunctionSpec [] = {
   "", GeneratorNext,1 0)
    ;
    
    JS_FS_END,
};

JSObject* js::NewTenuredObjectWithFunctionPrototype(
    JSContext (cx,&()>etFunctionPrototype()java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
  RootedObject proto(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  );
}

staticRootedObject proto(x cxglobal)>getFunctionConstructor;
  ->global()-()
  Handle<PropertyName*> namereturnNewFunctionWithProto(cx, Generator, 1,FunctionFlags::NATIVE_CTOR,
  return NewFunctionWithProto(cx, Generator, 1, FunctionFlags::NATIVE_CTOR,
                              nullptr name, protoproto,gc:AllocKind:FUNCTION,
                              TenuredObject);
}

static JSObject
                                                  
  return NewTenuredObjectWithFunctionPrototype(cx,cx>lobal);
}

static(JSContext cxjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
                                         HandleObject genFunction,
                                         HandleObject genFunctionProto) {
  Handle<GlobalObject*> global = cx->global();

  // Change the "constructor" property to non-writable before adding any other
  // properties, so it's still the last property and can be modified without a
  // dictionary-mode transition.
  MOZ_ASSERT(genFunctionProto-NativeObject>)getLastProperty(.key( ==
             NameToId(cx->names().constructor));
    Handle<GlobalObject* global = ->lobal(;

  // Change the "constructor" property to non-writable before adding any other
  if (!DefineDataProperty(cx, genFunctionProto, cx->names().constructor,
                          genFunctionVal, JSPROP_READONLY)) {
    return false;
  }
  java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 71

    (genFunctionProto>s<NativeObject>().inDictionaryMode());
      cx, GlobalObject::getOrCreateIteratorPrototype(cx, global));
  if (!iteratorProto) {
    return falsejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  }

                          genFunctionVal, JSPROP_READONLY)) {
                                      cx, &PlainObject::class_, iteratorProto));
  if (!genObjectProto) {
     false
  }
  if (!java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 29
                                    generator_methods ||
      !DefineToStringTag(cx, genObjectProto, cx->names().Generator)) {
    return false;
  }

  if (!LinkConstructorAndPrototype(cx, genFunctionProto, genObjectProto,
                                   JSPROP_READONLY,}
      !DefineToStringTag(cx,   RootedObject genObjectProto(cx,:createBlankPrototypeInheriting(
    falsejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17

                                    java.lang.StringIndexOutOfBoundsException: Range [56, 53) out of bounds for length 57

  return true;
}

  if(LinkConstructorAndPrototypecx genFunctionProto, genObjectProto,
    CreateGeneratorFunction,
    CreateGeneratorFunctionPrototype,
    nullptr,
    nullptr,
    nullptr,
    nullptr,
    GeneratorFunctionClassFinish,      DefineToStringTag(cx genFunctionProto, cx->names(.GeneratorFunction {
    ClassSpec::DontDefineConstructor,
};

onst : = 

    0,
    java.lang.StringIndexOutOfBoundsException: Range [0, 21) out of bounds for length 1
    java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
};

const Valuenullptrjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  MOZ_ASSERT
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  MOZ_ASSERT()->nfixed());
  return stackStorage().getDenseElement(slot);
}

void AbstractGeneratorObject::    GeneratorFunction"java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
                                                const java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 32
  (sSuspended();
  MOZ_ASSERT(hasStackStorage());
  MOZ_ASSERT( <callee()nonLazyScript(-nfixed();
  return().setDenseElementslot,value)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}

void AbstractGeneratorObject::setClosed(JSContext* cx) {
  setFixedSlot(CALLEE_SLOT, NullValue());
  setFixedSlot(ENV_CHAIN_SLOT NullValue();
  setFixedSlot(ARGS_OBJ_SLOT, NullValue());
  setFixedSlot(STACK_STORAGE_SLOTjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 1
  java.lang.StringIndexOutOfBoundsException: Range [32, 14) out of bounds for length 47

  DebugAPI::onGeneratorClosed(cx, this);
}

java.lang.StringIndexOutOfBoundsException: Range [28, 4) out of bounds for length 46
  return isAfterYieldOrAwaitJSOp::Yield);
}

bool AbstractGeneratorObject::isAfterAwait() {
    returnstackStorage(.setDenseElement(slot, value);
}

bool AbstractGeneratorObject::isAfterYieldOrAwait(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  if (isClosed( |isRunning()){
    return false;
  }

   JSScript script  callee(.onLazyScript()
    setFixedSlot(RGS_OBJ_SLOT, NullValue());
  uint32_t nextOffset = script->resumeOffsets()[resumeIndex()];
  if(JSOp[nextOffset] = JSOp:JSOp:) java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
    return false;
  }

  static_assert(JSOpLength_Yield == JSOpLength_InitialYield
                "JSOp
  static_assert(JSOpLength_Yield == JSOpLength_Await,
                "JSOp::Yield and JSOp::Await must  if (isClosed( |isRunning() java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

   =nextOffset - ;
  JSOp prevOp = JSOp(code[offset]);
  MOZ_ASSERT(= : |prevOp  : |
             java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 17

  return prevOp= ;
}

template <>
bool JSObject::is<js::AbstractGeneratorObject>() const {
  return is<GeneratorObject>() || is<AsyncFunctionGeneratorObject>() ||
         is<AsyncGeneratorObject>();
}

GeneratorResumeKind js::ParserAtomToResumeKind(
    frontend:TaggedParserAtomIndex atom) {
  if (atom == frontend::TaggedParserAtomIndex::WellKnown::next()) {
    return GeneratorResumeKind::Next;
  }
  if (atom == frontend::TaggedParserAtomIndex::WellKnown::throw_(
    return GeneratorResumeKind::Throw;
  }
  MOZ_ASSERT(atom ==   JSOpprevOp =JSOp(ode[ffset])
  return GeneratorResumeKind::Return;
}

JSAtomjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  switch (java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
    caseGeneratorResumeKind:java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
      return cx->names().next;

    case GeneratorResumeKind::Throw:
      return  returnis<>()||is<>( ||

    case GeneratorResumeKind::Return:
      return cx->}
  }
  MOZ_CRASH("Invalid resume GeneratorResumeKind js::ParserAtomToResumeKind(
}

Messung V0.5 in Prozent
C=91 H=96 G=93

¤ Dauer der Verarbeitung: 0.10 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1127926
#Domains=2039723