X# pronounced X-Sharp is an High Level Assembly language that target the x86 architecture and is expected to be flexible enough to later target other kinds of processors.
The language is line based which means an instruction doesn't span several lines. This make the language easier to parse. Also parsing is performed in one path. This imply that some semantic checks are not performed by the parser which may lead to assembly failures when NASM is invoked later.
Close to 1:1 mapping for debugging, non disconnect. No large compounds.
A comment must appear on its own line. You can't mix code and comments on a single line. A comment line
is one that starts with two consecutive slashes. Whitespaces may be inserted before the comment line. For example :
// This is a comment.
// Another comment prefixed with whitespaces.
A string literal is surrounded with single quotes. Should your string contain a single quote you must
escape it with a backslash character. For example :
'Waiting for \'debugger\' connection...'
You can write integer literal values either in decimal or hexadecimal. For hexadecimal values prefix
the value with a dollar sign:
// Those two constant values are actually equal
const decimal = 255
const hexadecimal = $FF
A namespace is a naming scope that lets you organize your code to avoid naming collision. You
declare a namespace by using the namespace
keyword and giving it a name. For example :
namespace TEST
The namespace name is automatically used as a prefix for each named item that appear in that namespace (function name, labels, variables ...). The namespace extents from the souce code line it is declared until either another namespace definition appear or the end of the source code file is reached. Consequently there is no namespace hierarchy and you cannot "embed" a namespace into another one.
WARNING : Code inside a namespace has no way to reference or use code or data from another namespace.
Nothing prevents you to reuse a namespace including inside a single source code file. For example the
following source code will compile without error.
namespace FIRST
// Everything here will be prefixed with FIRST. Hence the "true" full name of the below variable
// is FIRST_aVar
var aVar
namespace SECOND
// Not a problem to name another variable aVar. Its true name is SECOND_aVar
var aVar
namespace FIRST
// And here we get back to the FIRST namespace
Every program artefact MUST appear inside a namespace. It is hence strongly recommended to define a namespace at the very beginning of any X# source file.
byte
keyword.word
keyword.dword
keyword.The signedness of the datatype is undefined. The X# code needs to handle itself the various control flags (carry, sign and overflow) according to the context. Also notice that X# is lacking floating point datatypes.
Constants are symbolic names associated with a numeric litteral value. A constant definition
is introduced by the const
keyword, followed by the constant name an equal sign and a
constant numeric value. Constants are always considered to be of double word type. For example :
namespace TEST
const twoHundred = 200
The constant name itself is built differently than for other items. The above constant
declaration is actually named TEST_Const_twoHundred
. Consequently you can
define another (non const) item with the same name without fearing name collision. However
this is bad programming practice and is strongly discouraged.
WARNING : Whenever you want to reference one of you constants in your source code, you MUST
have its name be prefixed with a dash. For example the following code initialize the EAX register
with the value of the twoHundred constant :
EAX = #twoHundred
You can define either atomic variables of either doubleword or text type or one dimension array
of any of the available datatypes. You declare a variable by giving it
a name and optionally a value. For example the code below declares two variables :
var myNumVar = 876
var myTextVar = 'A message'
If you omit to give the variable a value it will be assumed to be a doubleword and will be
initialized with a default value of 0.
The X# compiler silently appends a null byte at the
end of textual initialization value.
You also can define a one dimension array of one of the available datatypes.
All array members are initialized to 0. You must provide the array size at declaration time.
For example delaring an array of 256 bytes is :
var myArray byte[256]
AH AL BH BL CH CL DH DL
as well as word sized :
AX BX CX DX
and doubleword sized EAX EBX ECX EDX
. The four specific
registers are also available as doubleword sized : ESI EDI ESP EBP
Labels are a way to give a name to some memory addresses. This is a convenient way to be able
to reference these addresses at coding time without having to know there value at runtime. The X#
compiler automatically creates several labels. For example each time you define a variable, a
label will be created having the variable name and referencing the memory address of the variable.
This will be usefull to read and write variable content.
When you create a function a label will also be defined to be the address of the beginning of the
function. This label will be used when you call the function.
Those automatically created
labels are largely transparent for you. On the other hand you may want to explicitly define labels
to denote some particular position in your code. This is the case for example when you want to
perform a test and jump to a specific line of code depending on the result of the test. You will
create a label at the code location where you will want to jump.
A label is nothing more than
a name suffixed with :
// This is a useless label because the variable already got one.
MyUselessLabel:
var myVar
Functions are declared using the function
keyword. A function name must follow the
keyword and be followed by an opening curly brace. Be carefull to keep the opening curly brace on
the same line than the function
keyword. Contrarily to high level languages, X# function
declaration doesn't support parameters declaration. You must handle parameters passing by yourself
either using the stack and/or well known registers. For example :
function MyFirstFunction {
// Your code here
// Do not forget the closing curly brace.
}
When the X# compiler encounters the closing curly brace that signal the end of the function source
code, the compiler automatically adds a ret
instruction. The recommended way to return
from a function is to use the return
keyword. Internally the X# compiler will translate
it to an unconditional jump to a special label local to the function which is named Exit
.
The X# compiler tracks the use of this label and is wise enough to add such a label at the end of the
function code if you don't define it by yourself.
Sometimes you will want to explicitly return from your function without going to the cleanup code that
may be defined at and below the function Exit
label. You can do so by using the ret
keyword.
// This instruction will directly exit the function without jumping to the Exit label.
ret
WARNING : The X# compiler doesn't monitor stack content. It is the responsibility of your code to
make sure that the return address is immediately on top of the stack before the ret
instruction
is executed, including for the one that is automatically added by the compiler at the end of the function
body.
You invoke a function by using the call
keyword followed by the function name.
Call myFunction
Because X# doesn't support function parameters you must make sure you properly setup the stack and/or
the registers that are expected by the invoked function.
Interrupt handlers are special kind of functions used to handle an interruption. Those functions
do not support parameters and are declared using the interrupt
keyword. An interrupt
function name must follow the keyword and be followed by an opening curly brace. Be carefull to keep
the opening curly brace on the same line than the interrupt
keyword. For example :
interrupt DivideByZero {
// Your code here
// Do not forget the closing curly brace.
}
Interrupt handlers are executed in a specific processor context that is different from the
normal control flow within functions. So there must be a way for the processor to know when
interrupt processing is done and normal operations should resume. This require a specific
instruction, namely iret
in x86 processors architecture. Normally you do not
have to take care of this because the X# compiler knows you're defining an interrupt handler
and silently insert the iret
instruction at the end of the interrupt handler
code. However you can diretcly insert the iret
instruction in your X# code,
including in a normal function.
WARNING : You must be very carefull not to use this instruction when your code is not handling an interruption otherwise the processor will trigger an exception. The X# compiler doesn't perform any control when you hardcode this instruction.
You can assign a value to a register or to a variable. You do it using
the =
operator. The left side is the register or variable name while the right side
is the value to be assigned. For example :
// Assign the immediate value 123 to the EAX register (32 bits).
EAX = 123
On the right side of the assignment operator you can use either an immediate value, a constant
(which name must be prefixed with a dash sign), or a register name.
When the left side of the assignment operator is a variable name and the right size is an immediate
value you can additionally explicitey define the size of the right operand using an as
clause associated with the datatype. For example :
// Assign the immediate value 200 as a word (16 bits) to the myVar variable.
myVar = 200 as word
Sometimes a register contains the in memory address of another element, most lkely a variable.
In this case you do not want to assign a value to the register itself and want instead to store
the value at the memory adress stored in the register. This is called address indirection and is
denoted by the register name being followed by a number surrounded between square brackets and
known as an offset (more on this later). Address indirection may be used on both the right side and
the left side of the =
assignment operator. However you can't use it on both side at
the same time. Let's take an example :
EAX[10] = EBX
The behavior is as follow : take the content of the EAX register, add to it the offset value (10
in our example) and consider this to be a memory address. Now store the content of the EBX register
at this memory address.
The offset value must be a literal number including 0 or even a negative number.
So now how does it come for a register's value to be a memory address ? We do this with a special
@
operator that is used as a suffix to a label name. Knowing each time you declare a
variable the X# compiler automatically creates a label for this variable it comes that we now have
the following syntax :
// Declare a variable
var myVar
// Read variable content into EAX register by using the variable name.
EAX = myVar
// Load EAX register with the in memory address of the myVar variable.
EAX = @myVar
// So now we can store the content of EBX register into myVar variable.
EAX[0] = EBX
// And read back the content of the myVar variable into ECX register.
ECX = EAX[0]
X# support additive and substractive register arithmetic with the +
and -
operators. X# support a shotcut syntactic version for incrementing and decrementing a register.
This syntax is not supported for variables. When incrementing or decrementing a register you must omit the
assigment part of the instruction. The target register is the one on the left side of the operator. For
example the following instruction increment the EAX register by 2 :
EAX + 2
In the above example you can replace the literal value with a register name but not with a variable
name. In the following example the value of the EAX register is decremented by the value of the EBX
register :
EAX - EBX
Finally there is even a shorter version when you want to increment or decrement a register by 1.
This is performed with the ++
and --
operators. They must be applied to a
register only. Incrementing and decrementing a variable this way is not supported. Additionally the
operator must be used as a register suffix with no additional space between register name and operator.
For example :
// Increment EAX register
EAX++
// Decrement ECX register
ECX--
X# also support a restricted subset of the signed integer multiplication. The expression is a
register name followed by the * operator and a multiplicand that can be either an integer literal
or a register of the same size than the first register. The first register is the one that will
receive the result of the multiplication of the first operand by the second one. For example :
// Multiply EAX register by 0x1234
EAX * $1234
// Multiply DX by CX
DX * CX
If you use the second syntax involving two registers, they must be of the same size.
WARNING : You cannot use a byte sized register (AH, AL, BH, BL, CH, CL, DH or DL) for the first operand.
Shifting a register to the right or to the left is performed with >>
and
<<
keywords respectively. Following the keyword you must provide a literal
number that define how many bits to shift. For example :
code>// Shift EAX to the right by 8 bits.
EAX >> 8
Shifting a register to the right or to the left is performed with ~>
and
<~
keywords respectively. Following the keyword you must provide a literal
number that define how many bits to shift. For example :
code>// Roll EAX to the left by 12 bits.
EAX <~ 12
< > = <= >= !=
.Sometimes you want to compare a register content for equality with a literal number, a variable
content or a constant. You can do this with the ?=
operator. The left side of the
operator is the register name while the right side is the value to be compared with. The result
of such an operation is to have the processor context flags (sign overflow, equality and carry) to
be set accordingly with the comparison result.
// Compare EAX register content with literal value 812.
EAX ?= 812
You may also which to test some specific bits of the register value and not the full register
value as a whole. This is where you use the ?&
operator. Once again processor context
flags are updated with the result of the bitwise AND comparison of the register value and the
compared value.
// Test whether the fourth least significant bit of EAX register is set.
EAX ?& $08
The goto
keyword lets you perform unconditional branching. Following the keyword
you must name the target label. For example :
// Assuming a somewhereElse label is defined.
goto somewhereElse
The if
keyword lets you perform conditional branching. Following the keyword and
on the same line you must provide a condition followed by either a goto
statement or
a return
statement or you must begin a code block with an opening curly brace.
The condition itself is usually a simple comparison as described above. It can also be a test
involving just a comparison operator and nothing else. This special syntax is used to directly
test one of the three main flags updated by the processor on almost any instruction : (signedness,
overflow and carry). This syntax is not recommended unless you know very well how the processor
behaves. Most of the time you can use the standard syntax to achieve the same result, albeit with
a couple less line of codes sometimes. For example :
// A simple test with standard syntax :
if EAX > 10 return
// This is equivalent to this one with special syntax :
EAX ?= 10
if > return
Notice that unlike higher level languages there is no "else" construct available.
The while keyword only support standard comparison. Special syntax available with if
statement can't be used with the while
statement.
while eax < 0 {
eax = 1
}
The x86 architecture supports a stack concept that is backed by the ESP
processor
register. Pushing value(s) onto the stack is denoted with the +
sign while popping
value(s) from the stack is denoted by the -
sign. You can push or pop a single
register at a time by prefixing its name with the appropriate operation sign. There must not be
any whitespace character between the sign and the register name. For example:
// Pop the EAX register from the stack.
-EAX
The datatype of the pushed/popped value is implied by the register name.
You can also directly push (and obvioulsy can't pop) an immediate numeric value value onto the
stack. Should the value be defined as a constant with the const
keyword do not forget
the dash sign that must appear between the operation sign and the constant name. For example :
// Push the immediate value 200 onto the stack.
+200
// Push the value for the twoHundred constant onto the stack.
+#twoHundred
The default datatype for a pushed immediate value is doubleword. You can also explictly state the
kind of datatype for the pushed/popped constant. You do this by appending a
as
clause at the end of the instruction such as :
// Push the immediate value 200 onto the stack as a word (2 bytes).
+200 as word
// Push the twoHundred constant onto the stack as a single byte.
+#twoHundred as byte
Finally is also a convenient instruction that let you push or pop all common purpose registers with
the All
instruction. Once again you must prefix this keyword with the appropriate
operation sign.
Reading and writing I/O ports is performed with the Port
keyword. The port number must
be set in the DX register. You can read or write a byte, a word or a doubleword at a time. The input
or output data will be in AL, AX or EAX register respectively. To read a byte use the following syntax :
AL = Port[DX]
To write a double word use the following syntax :
Port[DX] = EAX
The checkpoint
instruction let you write a simple text to the console by directly
copying text content to the video buffer. The text must fllow the keyword and be surrounded with single
quotes. Should it contain quotes they must be escaped with an antislash.
checkpoint 'This is a \'debugging\' message'
// Hope our Execution state block in System Management RAM is valid otherwise crash-boom
! RSM


An unnamed former Western intelligence officer—who spent almost two decades on Russian intelligence matters and who now works with a US firm that gathers information on Russia for corporate clients—was assigned to research Trump’s dealings in Russia and elsewhere, according to the former spy and his associates in this American firm. This was for an opposition research project originally financed by a Republican client critical of Trump, later switched to a client allied with Democrats. He came across troubling information indicating connections between Trump and the Russian government. According to his sources, he says, “there was an established exchange of information between the Trump campaign and the Kremlin of mutual benefit.”
His first memo to the FBI stated: “[The] Russian regime has been cultivating, supporting and assisting TRUMP for at least 5 years. Aim, endorsed by PUTIN, has been to encourage splits and divisions in western alliance.” It maintained that Trump “and his inner circle have accepted a regular flow of intelligence from the Kremlin, including on his Democratic and other political rivals.” It claimed that Russian intelligence had “compromised” Trump during his visits to Moscow and could “blackmail him.” The former spy said FBI responded with “shock and horror.”
Source: Mother Jones


amazon-com
Businessmodel of Amazon.com
Customer Segments
Amazon appeals to a mass market. Rather than targeting any specific demographics, Amazon’s accessibility and sheer variety of physical and digital products mean that virtually anyone with an internet connection is a potential customer. Whether it’s physical goods or digital media they are after, Amazon has something to offer most consumers.
Amazon also has a loyal core customer segment, reportedly comprising tens of millions of people globally, in the form of its Amazon Prime subscribers, who pay an annual subscription fee for free express postage and other perks.
Value Proposition
Convenience, competitive pricing, brand recognition, and the sheer range of goods stocked are all central to Amazon’s value.
The ease with which consumers can buy a wide range of goods on Amazon is an important factor in Amazon’s success. Consumers know that Amazon is a well-stocked, competitively priced, safe, reliable and efficient platform for shopping, so they keep coming back. This is illustrated by one survey which found that 44% of American consumers said that, when shopping, they would go straight to Amazon to search for what they want without even looking at other websites. No other online retail platform can boast quite this level of ubiquity, and this is an essential part of Amazon’s value.
Founder Jeff Bezos emphasises that the Amazon brand has been central to the company’s success. Noting that “there’s nothing about our model that can’t be replicated”, he claims that the brand name “Amazon”, connoting ideas of something exotic, diverse and huge, has itself been key to the company’s success. Amazon has many e-commerce rivals, but few enjoy anywhere near the same level of global brand recognition. Everyone has heard of Amazon, and so for many, it is the first place they look when they want to buy something.
As Amazon developed and branched out into digital media streaming and the sale of ebooks, exclusivity has become an increasingly significant value proposition. These days AmazonStudios even creates original TV shows and movies which form a modest, but growing part of Amazon’s total value.
Channels
Amazon’s largest channel is its website *amazon.com. *It also maintains fourteen different versions of its website for customers from various countries across five continents. Products are also purchased through the Amazon smart-phone app, which functions as an increasingly important sales channel.
Many third-party electronics stores stock Amazon’s Kindle range of consumer electronics, providing an additional channel.
Customer Relationships
Making online shopping and the purchase of digital content easier for consumers has long been a focus of Amazon. Because of this, Amazon enjoys long-term relationships with millions of consumers worldwide who keep returning to Amazon time and time again to buy more products. They enjoy a particularly close relationship with their Amazon Prime subscribers, who, having paid their annual subscription fee, are likely to consistently use Amazon as their first port of call for online shopping.
Amazon.com offers a high degree of user interactivity. Shoppers may review purchases and place comments on nearly every page. Because of this, Amazon is sometimes referred to as not only the world’s largest retailer, but also the largest online community.
Amazon invests heavily in customer service. To ensure higher levels of customer satisfaction, they offer 24-hour customer service via email, phone or web-chat, as well as providing help forums where users may seek advice from the community.
Key Activities
Merchandising – of physical and digital goods, is clearly a key activity, but in the last decade, Amazon has invested substantially in production of digital content through Amazon Studios, and consumer electronics under the Kindle brand.
Key Resources
Amazon owns numerous physical resources such as warehouses and film studios, but Amazon’s technological infrastructure is also a key resource. In addition to owning many digital content streaming platforms they are also the world’s largest provider of cloud infrastructure services via their subsidiary, Amazon Web Services.
Amazon’s sophisticated technological infrastructure is a valuable key resources that is essential for the day-to-day functioning of its business. For example, Amazon operates some of the largest databases in the world, which they use to, among other things, keep records on customers’ consumption habits in order to engage in more efficient merchandising. In the era of “big data”, this is not an asset to be underestimated.
Key Partners
Manufacturers, third-party sellers, publishers and digital content producers are all key partners in Amazon’s operations.
Manufacturers of the physical goods that are stocked in Amazon’s warehouses are the obvious key partners. However, not all physical goods sold on Amazon are stored in their own warehouses, and a substantial percentage of revenue comes from third party sellers who Amazon allows to operate on their online platform.
The people who own the intellectual property that Amazon sells via the Kindle ecosystem and streaming platforms are also key partners.
Cost Structure
Amazon’s main online retail activities are cost-driven, meaning that they operate on a model whereby economy of scale is important. Warehousing and distribution comprise Amazon’s most significant cost drivers as the company operates a large number of massive warehouses globally. Amazon is working on driving these costs down by automating warehouse processing and delivery where possible. Other significant cost drivers include the running of numerous software development centres and customer service centres around the world.
Another key cost driver is the initial cost of purchasing the goods they sell, however they are able to stay competitive in this field by economies of scale.
Amazon’s intellectual property assets are value-driven, with the kindle ecosystem and Amazon’s various streaming services operating on the principle of creating value rather than minimizing costs.
Revenue Streams
Online retail remains Amazon’s largest revenue stream. Amazon stocks a huge range of physical products, the online sale of which still accounts for most of their revenue. Further revenue is made by taking commission from third-party retailers who use the Amazon platform.
Sale of E-books and streaming of digital content has been a growing source of revenue for Amazon over the last decade.
Other, smaller revenue streams include the Amazon Prime subscribers’ fee, and the sale of Amazon’s own Kindle range of electronics.


A friendly place for programming greenhorns!
Register /
Login
Java Forums
» Java »
Web Services
java.net.MalformedURLException: no protocol: <soap:Envelope ?
Post by: Max Tomlinson, Ranch Hand
on Jul 29, 2010 22:08:07
Hi All-
I'm running into an xml validation issue on the return from a ws call.
I am calling the web service using HttpURLConnection in a servlet.
I get a good response, with a soap envelope, and I want to parse the xml.
The problem is that I get the above error,probably due to missing schemas.
my code:
String getSubscriptionIdFromResponse(String response) {
InputSource is = new InputSource(response);
is.setEncoding("UTF-8");
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
SaxHandler handler = new SaxHandler();
parser.parse(is, handler);
return handler.subscriptionId;
} catch (Exception e) {
e.printStackTrace();
return "error occurred";
}
}
the response string:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body xmlns:ns1="http://docs.oasis-open.org/wsn/bw-2"><SubscribeResponse xmlns="http://docs.oasis-open.org/wsn/b-2"><SubscriptionReference xmlns="http://docs.oasis-open.org/wsn/b-2"><Address xmlns="http://www.w3.org/2005/08/addressing">https://w02777/orion/soap?ServiceName=NotificationProducer</Address><ReferenceParameters xsi:type="ns:FooReferenceParametersType" xmlns:ns="http://www.foo.com/ws/integration/notification/2008/10" xmlns="http://www.w3.org/2005/08/addressing"><SubscriptionId xmlns="http://www.foo.com/ws/integration/notification/2008/10">TCSN_foo_Subscriber_331DAA98-4DC7-11DF-836B-AE4F0AC5625E</SubscriptionId></ReferenceParameters></SubscriptionReference></SubscribeResponse></soap:Body></soap:Envelope>
I've tried setting systemId but I suspect the problem is that I don't have a valid DTD.
All I want to do is parse one field.
any ideas?
thanks
Max
Post by: Max Tomlinson, Ranch Hand
on Jul 30, 2010 16:27:58
This turned out to be due to my setting the input source from a string of xml I had built from reading the input stream.
Once I set the source directly from the input stream directly - which included the protocol, it worked.
All times above are in ranch (not your local) time.
The current ranch time is
Dec 13, 2013 16:43:00 .
Or visit our non-mobile (full) site


Let's have some good food!
Experience the greatest food ever with our signature dining options. Please join us and take part of our multi-faceted cuisine.
Make a ReservationExperience the greatest food ever with our signature dining options. Please join us and take part of our multi-faceted cuisine.
Make a Reservation


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 116395maths/17166instancesemiringsemiringwithzero.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/116395-maths/topic/instance.20.5Bsemiring.20.CE.B1.5D.20.3A.20semiring.20(with_zero.20.CE.B1).html


Please upload a painting!
Width (inch):
Artist Country: American Australian Austrian Belgian British Canadian Chinese Danish Dutch Finnish French German Indian Iranian Italian NewZealand Russian Spanish Swedish Swiss Other_artist_country
Is the artist alive? Yes No


COMPLIMENT,FROM MRS VICTORIA FATOU SANKOH<EMAIL_ADDRESS>I do hope my letter will not embarrass you since there was no previous Correspondence held with you. MY Getting your address is the handwork of thealmighty God. Since then, I have been very much hopeful that you will assist us irrespective of the fact that the present world is full of dishonesty and distrust. Firstly, I will wish to introduce myself. I am Mrs.VICTORIA FATOU SANKOH, from Sierra Leone; I am the wife of, CPL FODAY SANKOH.My husband was the Leader of the Revolutionary United Front until he was dethroned and arrested early last year by President TEJAN KABBAH who later handed him over tothe United Nations war crime tribunal were he later died in detention. As a result of this position in the government, my son (SAM SANKOH) and l triedandlatersucceeded in securing some of his assets, which include mansions and physical cash. This is to avoid The present government from confiscating his entire property. We left Sierra Leone with the total amount US$26.5 Million (Twenty Six Million Five Hundred Thousand United States Dollars) only, which we Brought to NIGERIA anddeposited same with UNION BANK PLC OF NIGERIA, as valuable documents belonging to our foreign affiliate. After depositing the money, my family and I were asked to leave NIGERIA and was made public on NIGERIA National Headlines, we were left with no option than to seek refuge in my homeland in SierraLeone . The security company later asked me, to come and claim the consignment immediately to avoid the money being confiscated. I arrived here a couple of days agoand through a good contact l applied for a refugee status as an asylum seeker, which is still pending in Foreign Affairs Departmen t.Theproblemnowisthatbecause of our status, we cannot risk moving the money without help hence I am looking for a trustworthy partner, who can help me move this money out of NIGERIA . In that case, I want to know if you can help me transfer the fund into your account in your country or elsewhere since time is not on my side. As a widow of six children Ineed your urgent attention to this matter. It is true that we have neither met nor known each other before, but the information I gathered of your credibility makes me believe that with trust and honesty we will achieve a huge success in about a week. I will also leave with you from NIGERIA to yourcountry immediately the money goes into your account. This is simple, I will like you to provide immediately your 1.Your full names 2.Contact address 3.Yourdirect telephone and Fax number 4.Your age 5.Your marital status Based on the following informaion bee n providebyyouMylawyer,whoknow allthe full details on how you will received the fund will prepare the necessary documents and affidavits which will put you in place as the owner of the fund. For your noble assistance and well assured of safeguarding the whole Fund under your care, I will offer you 40% of the total sum, while 10% will be set aside for expenses incurred onthe cause of this transaction by both parties, while the remaining %50 will be for me and my family. I want to assure you that this business is completely risk free because every arrangement has been made for a successful deal. I expect your immediate response so that we can conclude theTransaction in the very shortest time. It is very important that you keep this business HIGHY CONFIDENTIAL because I do not want anything to happen to this fund. Thanksand God bless. Best regards, Mrs.Victoria F Sankoh Note: You are advise to only reply with this<EMAIL_ADDRESS>for security reasons.


CXIA
Cryptocurrency Exchange Indicator Analysis
About CXIA
CXIA (Cryptocurrency Exchange Indicator Analysis) uses historical data and price/volume indicators to analyze and screen cryptocurrencies and digital assets for buy or sell signals by purely technical analysis. Using moving averages, strength indexing, and price-volume convergence we can model the relative probability of a cryptocurrency's momentum upwards or downwards.


Experienced patent attorney, both litigation and prosecution. Areas of expertise include medical devices, optics, pharmaceutical and chemical production and processing. Transactional and general experience, including venture capital funding rounds, M&A matters and IPOs.
Member of the Pennsylvania Bar
Adam assists inventors and technology firms with the development and protection of intellectual property portfolios. With experience in patent application drafting, prosecution, patent opinion matters, and counseling since 1989, Adam has developed significant experience assisting his clients navigate the often difficult paths through the patent systems with respect to freedom-to-operate issues, as well as obtaining patent protection and counseling clients on asserting patent rights.
(source: cnmiplaw.com)
Shelly has extensive experience in the biotechnology, biochemical, and chemical technology fields and concentrates her practice in patent drafting, prosecution, licensing, and opinion matters. Shelly has worked in the field of intellectual property since 1989, practicing as a patent attorney or agent since 1995 and with six years’ experience as a patent examiner at the U.S. Patent & Trademark Office in the biotechnology group. Shelly has assisted clients with intellectual property matters in technology areas including molecular biology, protein manipulation and purification, gene manipulation and therapy, prokaryotic and eukaryotic recombinant expression systems, antigen/antibody technologies, pharmaceuticals and drug development, organic compounds and synthesis methods, amino acid technologies for agricultural and nutritional uses, and virology.
(source: cnmiplaw.com)
Malcolm has represented clients at the U.S. Patent and Trademark Office since 1994 in patent prosecution, reexamination, and interference matters in a wide variety of technological disciplines, including biotechnology, pharmaceuticals, industrial chemistry, computerized healthcare management, software, electronics, and designs. Malcolm also counsels his clients in trademark matters, and helps them manage their intellectual property portfolios, including in- and out-licensing of technology.
(source: cnmiplaw.com)


Main Page
EarthQuake History
Real Data
About
Tab 2 contents here
This tab contains all the earthquakes datas from centuries


UBQC
Let's play UBQC together! {% block content %}{% endblock %}
Made with love by Cyril Castagnet, Léo Colisson, Francesco Arzani, Raja Yehia, and BOB a project of QIH.


title = "Home" url = "/" layout = "default" meta_title = "Business Brokers of Florida" meta_description = "" is_hidden = 0 == {% set cats = [ 'Seller Financed Businesses', 'Gas Stations', 'Websites and Ecommerce', 'Car Washes', 'Home Based Business', 'Storage and Warehousing', 'Restaurants', 'Routes', 'Franchise Opportunities', 'Hotels', 'Pharmacies', 'Laundromats', ] %}


Syllabus
HOLLOWAY aka ALI v. UNITED STATES
Petitioner was charged with federal offenses including carjacking, which 18 U. S. C. § 2119 defines as tak[ing] a motor vehicle … from … another by force and violence or by intimidation with the intent to cause death or serious bodily harm. Petitioners accomplice testified that their plan was to steal cars without harming the drivers, but that he would have used his gun if any of the victims had given him a hard time. The District Judge instructed the jury, inter alia, that the intent requisite under §2119 may be conditional, and that the Government satisfies this element of the offense when it proves that the defendant intended to cause death or serious bodily harm if the alleged victims refused to turn over their cars. The jury found petitioner guilty, and the Second Circuit affirmed, declaring, among other things, that the inclusion of a conditional intent to harm within §2119 comported with a reasonable interpretation of the legislative purpose. Petitioners alternative interpretation, which would cover only those carjackings in which defendants sole and unconditional purpose at the time of the offense was to kill or maim the victim, was clearly at odds with Congress intent, concluded the court.
 This mens rea component of §2119 directs the factfinders attention to the defendants state of mind at the precise moment he demanded or took control over the car by force and violence or by intimidation. If the defendant has the proscribed state of mind at that moment, the statutes scienter element is satisfied. Petitioners readingthat the defendant must possess a specific and unconditional intent to kill or harm in order to complete the prescribed offensewould improperly transform the mens rea element from a modifier into an additional actus reus component of the carjacking statute; it would alter the statute into one that focuses on attempting to harm or kill a person in the course of the robbery of a motor vehicle. Given that §2119 does not mention either conditional or unconditional intent separatelyand thus does not expressly exclude eitherits text is most naturally read to encompass the mens rea of both species of intent, and not to limit its reach to crimes involving the additional actus reus of an attempt to kill or harm. Two considerations strongly support the Courts conclusion. First, petitioners interpretation would exclude from the coverage of the statute most of the conduct that Congress obviously intended to prohibit. Second, it is reasonable to presume that Congress was familiar with the leading cases and the scholarly writing recognizing that the specific intent to commit a wrongful act may be conditional. The Courts interpretation does not, as petitioner suggests, render superfluous the statutes by force and violence or by intimidation element. While an empty threat, or intimidating bluff, would be sufficient to satisfy that element, such conduct, standing on its own, is not enough to satisfy §2119s specific intent element. Pp. 411.
126 F. 3d 82, affirmed.
Stevens, J., delivered the opinion of the Court, in which Rehnquist, C. J., and OConnor, Kennedy, Souter, Ginsburg, and Breyer, JJ., joined. Scalia, J., and Thomas, J., filed dissenting opinions.


Interested in Contributing?
- Check out available resources.
- Create an account and start submitting your own systems.
Scored Systems
| System | Submitter | System Notes | Constraint | Run Notes | BLEU | BLEU-cased | TER | BEER 2.0 | CharactTER |
|---|---|---|---|---|---|---|---|---|---|
| uedin-wmt13-en-de (Details) | Nadir University of Edinburgh |
Phrase-based Moses | yes | [1308-6] |
20.8 |
20.3 |
0.714 |
||
| KIT primary (Details) | eunah.cho KIT |
NMT, BPE, rescore using five models | yes | Primary Submission |
20.7 |
20.1 |
0.711 |
||
| uedin-wmt13-en-de (Details) | Edinburgh University of Edinburgh |
[1267-7] Phrase-based Moses with sparse POS, domain, other features; kbmira | yes | [1262-7] Phrase-based Moses with sparse POS, domain, other features; kbmira |
20.6 |
20.1 |
0.716 |
||
| PROMT Hybrid (Details) | Alex Molchanov PROMT LLC |
no | primary |
20.3 |
19.8 |
0.697 |
|||
| PROMT Hybrid (Details) | Alex Molchanov PROMT LLC |
no |
20.1 |
19.6 |
0.699 |
||||
| uedin-syntax (Details) | Phil Williams University of Edinburgh |
yes |
20.0 |
19.4 |
0.716 |
||||
| TUBITAK (Details) | idurgar TUBITAK-BILGEM |
Moses phrase-based system, tuned on combination of all development sets, average weights of 5 different tunes | yes |
19.8 |
19.3 |
0.727 |
|||
| LIMSI-Ncode-SOUL-primary (Details) | LIMSI-CNRS LIMSI-CNRS |
An open source statistical machine translation system based on bilingual n-grams. The n-best list is rescored with bilingual neural-net ngram models using SOUL. | no | Wacky additional LM |
19.6 |
19.1 |
0.720 |
||
| MES-reorder (Details) | fraser MES: Munich-Edinburgh-Stuttgart |
Reordering based on constituent parse. Decoder is Moses phrase-based. | yes |
19.7 |
19.0 |
0.716 |
|||
| Stanford NLP Group's Phrasal Toolkit - Primary EN-DE (Details) | danielcer Stanford University |
Stanford's Phrasal Machine Translation Toolkit is a phrase-based machine translation system backed by massive discriminative feature sets extracted using deep source-side linguistic analysis. | yes |
19.5 |
18.5 |
0.724 |
|||
| LIMSI-Ncode-secondary (Details) | LIMSI-CNRS LIMSI-CNRS |
An open source statistical machine translation system based on bilingual n-grams. | no | Wacky additional LM + without SOUL |
18.4 |
18.0 |
0.734 |
||
| FDA (Details) | bicici |
Instance selection with Feature Decay Algorithms (FDA) and phrase-based translation with Moses. | yes |
18.3 |
17.9 |
0.742 |
|||
| RWTH-Jane-primary (Details) | mhuck RWTH Aachen University |
RWTH Aachen University English-to-German primary submission: Jane phrase-based | yes | constrained |
18.2 |
17.8 |
0.740 |
||
| cu-zeman (Details) | zeman Charles University in Prague, ┌FAL |
yes | secondary; not for manual evaluation; normalized; constrained; s.evaluator.b66d54ea.20130430-1140; A:en-lemma-de-lemma DEV:wmt2012 LM:news8all LM:news8euro LMA:de+stc LMO:6 S:en T:de TM:news8euro.de-en TST:wmt2013; 0.1833 [0.1782,0.1890] |
17.9 |
17.3 |
0.756 |
|||
| JHU En-De (Details) | jhushua Johns Hopkins University |
yes | Stock Joshua with no special tricks. |
18.1 |
16.6 |
0.746 |
|||
| cu-zeman (Details) | zeman Charles University in Prague, ┌FAL |
yes | primary; unnormalized; constrained; s.evaluator.b66d54ea.20130430-1140; A:en-lemma-de-lemma DEV:wmt2012 LM:news8all LM:news8euro LMA:de+stc LMO:6 S:en T:de TM:news8euro.de-en TST:wmt2013; 0.1833 [0.1782,0.1890] |
16.7 |
16.2 |
0.761 |
|||
| UU-Docent (Details) | sara.stymne Uppsala University |
yes | Primary submission, constraint |
17.0 |
16.1 |
0.738 |
|||
| Shef-wproa (Details) |<EMAIL_ADDRESS>University of Sheffield |
moses+weighted training | yes |
15.6 |
15.2 |
0.758 |


Basic markdown-element demo
markdown
attribute
src
attribute
src
not a markdown file
<script>
tag
Successful XSS attempt
Failed XSS attempt


. THE TRUMAN SHOW A film review by Christopher Null Copyright 1998 Christopher Null
Jim Carrey's finest hour? I don't know... I guess if you go for this sort of thing.
It's been four years since Tom Hanks played Everyman in FORREST GUMP, so I suppose the world was ripe for a repeat. You really can't go wrong with these Man-against-the-world/triumph-in-the-face-of-overwhelming-odds films, and done right they can have incredible appeal.
Thankfully, THE TRUMAN SHOW is done right, mostly. In case you live under a rock, you know that this is the story of a man (Carrey) who slowly discovers his life is a sham, a cradle-to-grave story that's been televised to the world for 30 years.
The melodrama factor is high, both on the show and behind the scenes. >From Truman's saccharine wife (Linney) to the overbearing director of the show, Christof (Harris), everyone in the film is a walking cliché. Part of this is by design--these are actors playing actors playing real people--but part of it is a crutch that, in the end, weakens the film. *Every one* of the supporting characters is wasted to some degree--it's especially visible with McElhone's character, an extra that Truman falls in love with against Christof's master plan.
It's scenarios like this that give THE TRUMAN SHOW its real weight: The "what would happen if..." developments that, of course, culminates with, "What would happen if Truman tried to escape?" That's where the drama is, and that's what makes THE TRUMAN SHOW compelling.
For what it's worth, Carrey's in fine form, but if you're looking for LIAR, LIAR antics you will be sorely disappointed. Director Weir has obviously kept him on a short leash, and while Carrey's improvised scenes can be spotted here and there, the broad comedy is kept to a bare minimum.
I can't help but think that with a little more thought to the supporting characters, THE TRUMAN SHOW would have been a classic. As it stands, it's still good, but it just doesn't live up to its own hype.
RATING: ****
|------------------------------| \ ***** Perfection \ \ **** Good, memorable film \ \ *** Average, hits and misses \ \ ** Sub-par on many levels \ \ * Unquestionably awful \ |------------------------------|
MPAA Rating: PG
Director: Peter Weir Producer: Edward S. Feldman, Andrew Niccol, Scott Rudin, Adam Schroeder Writer: Andrew Niccol Starring: Jim Carrey, Laura Linney, Noah Emmerich, Natascha McElhone, Ed Harris
http://www.trumanshow.com
-Christopher Null /<EMAIL_ADDRESS>/ Writer-Producer / http://www.filmcritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% extends 'base.html' %} {% load static %} {% block head_block %} {% endblock %} {% block body_block %} {% if document %}
The following table lists all Mass2Motifs that explain features extracted from this fragmentation spectra -- at the threshold specified in the experiment option.
| Motif | Probability | Overlap Score | Annotation |
|---|---|---|---|
| {{mass2motif.mass2motif.name}} | {{mass2motif.probability|floatformat:"3"}} | {{mass2motif.overlap_score|floatformat:"3"}} | {{mass2motif.mass2motif.annotation}} |
The following table lists all features extracted from this fragmentation spectra -- alongside Mass2Motifs that explain these features at the threshold specified in the experiment option.
| Name | Intensity | Mass2Motif (Probability) |
|---|---|---|
| {{feature.feature.name}} | {{feature.intensity}} | {% for m2minstance in m2minstances %} {{m2minstance.mass2motif}} ({{m2minstance.probability|floatformat:"3"}}), {% endfor %} |
The fragmentation spectrum of this molecules is plotted below, alongside associated Mass2Motifs. Features (fragments and losses) explained by the linked Mass2Motif are coloured in red, while the parent ion is coloured in blue.


Welcome back to Roblox Academy!
Login to Account
Welcome to your Roblox Academy Admin Portal!
Welcome back! You're currently logged in. The admin portal is still in construction.
Logout


You are getting 0 antimatter per second.
Make the game 10% faster.
Tickspeed: 1000
The world has collapsed on itself due to excess of antimatter.
|
First Dimension x1
|
0 (0)
|
|
|
|
Second Dimension
|
0 (0)
|
|
|
|
Third Dimension
|
0 (0)
|
|
|
|
Fourth Dimension
|
0 (0)
|
|
|
|
Fifth Dimension
|
0 (0)
|
|
|
|
Sixth Dimension
|
0 (0)
|
|
|
|
Seventh Dimension
|
0 (0)
|
|
|
|
Eight Dimension
|
0 (0)
|
|
|
|
Dimension Shift: requires 20 Fourth Dimension
|
|
|
Antimatter Galaxies: requires 80 Eight Dimension
|
|
You have made x antimatter.
You have made x soft resets.
You have made x Antimatter galaxies.
You have infinitied x times.
Your fastest infinity is in x.
You have spent x in this Infinity.
You have played for
You gotta start somewhere
|
100 antimatter is a lot
|
Half life 3 confirmed
|
L4D: Left 4 Dimensions
|
5 Dimension Antimatter Punch
|
We couldn't afford 9
|
Not a luck related achievement
|
90 degrees to infinity
|
To infinity!
|
That's a lot of infinites
|
You didn't need it anyway
|
That's fast!
|
One for each dimension
|
Boosting to the max
|
You got past The Big Wall
|
Double Galaxy
|
I forgot to nerf that
|
The Gods are pleased
|
The 9th Dimension is a lie
|
Claustrophobic
|
Antimatter Apocalypse
|
There's no point in doing that
|
Don't you dare to sleep
|
I don't believe in Gods
|
You have made x Infinity points.
|
|
|
|
|
|
|
|
|
|
|
|
|
|


{% extends "layout.html" %} {% block content %}
{{ error }}
Want to try but no poster? You can test with this one maybe: The Value Proposition of Libraries in Research Information Management.


Network Working Group C. Rigney Request for Comments: 2866 Livingston Category: Informational June 2000 Obsoletes: 2139 RADIUS Accounting Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract This document describes a protocol for carrying accounting information between a Network Access Server and a shared Accounting Server. Implementation Note This memo documents the RADIUS Accounting protocol. The early deployment of RADIUS Accounting was done using UDP port number 1646, which conflicts with the "sa-msg-port" service. The officially assigned port number for RADIUS Accounting is 1813. Table of Contents 1. Introduction .................................... 2 1.1 Specification of Requirements ................. 3 1.2 Terminology ................................... 3 2. Operation ....................................... 4 2.1 Proxy ......................................... 4 3. Packet Format ................................... 5 4. Packet Types ................................... 7 4.1 Accounting-Request ............................ 8 4.2 Accounting-Response ........................... 9 5. Attributes ...................................... 10 5.1 Acct-Status-Type .............................. 12 5.2 Acct-Delay-Time ............................... 13 5.3 Acct-Input-Octets ............................. 14 5.4 Acct-Output-Octets ............................ 15 5.5 Acct-Session-Id ............................... 15 Rigney Informational [Page 1] RFC 2866 RADIUS Accounting June 2000 5.6 Acct-Authentic ................................ 16 5.7 Acct-Session-Time ............................. 17 5.8 Acct-Input-Packets ............................ 18 5.9 Acct-Output-Packets ........................... 18 5.10 Acct-Terminate-Cause .......................... 19 5.11 Acct-Multi-Session-Id ......................... 21 5.12 Acct-Link-Count ............................... 22 5.13 Table of Attributes ........................... 23 6. IANA Considerations ............................. 25 7. Security Considerations ......................... 25 8. Change Log ...................................... 25 9. References ...................................... 26 10. Acknowledgements ................................ 26 11. Chair's Address ................................. 26 12. Author's Address ................................ 27 13. Full Copyright Statement ........................ 281. Introduction
Managing dispersed serial line and modem pools for large numbers of users can create the need for significant administrative support. Since modem pools are by definition a link to the outside world, they require careful attention to security, authorization and accounting. This can be best achieved by managing a single "database" of users, which allows for authentication (verifying user name and password) as well as configuration information detailing the type of service to deliver to the user (for example, SLIP, PPP, telnet, rlogin). The RADIUS (Remote Authentication Dial In User Service) document [2] specifies the RADIUS protocol used for Authentication and Authorization. This memo extends the use of the RADIUS protocol to cover delivery of accounting information from the Network Access Server (NAS) to a RADIUS accounting server. This document obsoletes RFC 2139 [1]. A summary of the changes between this document and RFC 2139 is available in the "Change Log" appendix. Key features of RADIUS Accounting are: Client/Server Model A Network Access Server (NAS) operates as a client of the RADIUS accounting server. The client is responsible for passing user accounting information to a designated RADIUS accounting server. Rigney Informational [Page 2] RFC 2866 RADIUS Accounting June 2000 The RADIUS accounting server is responsible for receiving the accounting request and returning a response to the client indicating that it has successfully received the request. The RADIUS accounting server can act as a proxy client to other kinds of accounting servers. Network Security Transactions between the client and RADIUS accounting server are authenticated through the use of a shared secret, which is never sent over the network. Extensible Protocol All transactions are comprised of variable length Attribute- Length-Value 3-tuples. New attribute values can be added without disturbing existing implementations of the protocol.1.1. Specification of Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [3]. These key words mean the same thing whether capitalized or not.1.2. Terminology
This document uses the following terms: service The NAS provides a service to the dial-in user, such as PPP or Telnet. session Each service provided by the NAS to a dial-in user constitutes a session, with the beginning of the session defined as the point where service is first provided and the end of the session defined as the point where service is ended. A user may have multiple sessions in parallel or series if the NAS supports that, with each session generating a separate start and stop accounting record with its own Acct-Session-Id. silently discard This means the implementation discards the packet without further processing. The implementation SHOULD provide the capability of logging the error, including the contents of the silently discarded packet, and SHOULD record the event in a statistics counter. Rigney Informational [Page 3] RFC 2866 RADIUS Accounting June 20002. Operation
When a client is configured to use RADIUS Accounting, at the start of service delivery it will generate an Accounting Start packet describing the type of service being delivered and the user it is being delivered to, and will send that to the RADIUS Accounting server, which will send back an acknowledgement that the packet has been received. At the end of service delivery the client will generate an Accounting Stop packet describing the type of service that was delivered and optionally statistics such as elapsed time, input and output octets, or input and output packets. It will send that to the RADIUS Accounting server, which will send back an acknowledgement that the packet has been received. The Accounting-Request (whether for Start or Stop) is submitted to the RADIUS accounting server via the network. It is recommended that the client continue attempting to send the Accounting-Request packet until it receives an acknowledgement, using some form of backoff. If no response is returned within a length of time, the request is re- sent a number of times. The client can also forward requests to an alternate server or servers in the event that the primary server is down or unreachable. An alternate server can be used either after a number of tries to the primary server fail, or in a round-robin fashion. Retry and fallback algorithms are the topic of current research and are not specified in detail in this document. The RADIUS accounting server MAY make requests of other servers in order to satisfy the request, in which case it acts as a client. If the RADIUS accounting server is unable to successfully record the accounting packet it MUST NOT send an Accounting-Response acknowledgment to the client.2.1. Proxy
See the "RADIUS" RFC [2] for information on Proxy RADIUS. Proxy Accounting RADIUS works the same way, as illustrated by the following example. 1. The NAS sends an accounting-request to the forwarding server. 2. The forwarding server logs the accounting-request (if desired), adds its Proxy-State">Proxy-State (if desired) after any other Proxy-State attributes, updates the Request Authenticator, and forwards the request to the remote server. Rigney Informational [Page 4] RFC 2866 RADIUS Accounting June 2000 3. The remote server logs the accounting-request (if desired), copies all Proxy-State attributes in order and unmodified from the request to the response packet, and sends the accounting- response to the forwarding server. 4. The forwarding server strips the last Proxy-State (if it added one in step 2), updates the Response Authenticator and sends the accounting-response to the NAS. A forwarding server MUST not modify existing Proxy-State or Class attributes present in the packet. A forwarding server may either perform its forwarding function in a pass through manner, where it sends retransmissions on as soon as it gets them, or it may take responsibility for retransmissions, for example in cases where the network link between forwarding and remote server has very different characteristics than the link between NAS and forwarding server. Extreme care should be used when implementing a proxy server that takes responsibility for retransmissions so that its retransmission policy is robust and scalable.3. Packet Format
Exactly one RADIUS Accounting packet is encapsulated in the UDP Data field [4], where the UDP Destination Port field indicates 1813 (decimal). When a reply is generated, the source and destination ports are reversed. This memo documents the RADIUS Accounting protocol. The early deployment of RADIUS Accounting was done using UDP port number 1646, which conflicts with the "sa-msg-port" service. The officially assigned port number for RADIUS Accounting is 1813. A summary of the RADIUS data format is shown below. The fields are transmitted from left to right. Rigney Informational [Page 5] RFC 2866 RADIUS Accounting June 2000 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Authenticator | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attributes ... +-+-+-+-+-+-+-+-+-+-+-+-+- Code The Code field is one octet, and identifies the type of RADIUS packet. When a packet is received with an invalid Code field, it is silently discarded. RADIUS Accounting Codes (decimal) are assigned as follows: 4 Accounting-Request 5 Accounting-Response Identifier The Identifier field is one octet, and aids in matching requests and replies. The RADIUS server can detect a duplicate request if it has the same client source IP address and source UDP port and Identifier within a short span of time. Length The Length field is two octets. It indicates the length of the packet including the Code, Identifier, Length, Authenticator and Attribute fields. Octets outside the range of the Length field MUST be treated as padding and ignored on reception. If the packet is shorter than the Length field indicates, it MUST be silently discarded. The minimum length is 20 and maximum length is 4095. Authenticator The Authenticator field is sixteen (16) octets. The most significant octet is transmitted first. This value is used to authenticate the messages between the client and RADIUS accounting server. Rigney Informational [Page 6] RFC 2866 RADIUS Accounting June 2000 Request Authenticator In Accounting-Request Packets, the Authenticator value is a 16 octet MD5 [5] checksum, called the Request Authenticator. The NAS and RADIUS accounting server share a secret. The Request Authenticator field in Accounting-Request packets contains a one- way MD5 hash calculated over a stream of octets consisting of the Code + Identifier + Length + 16 zero octets + request attributes + shared secret (where + indicates concatenation). The 16 octet MD5 hash value is stored in the Authenticator field of the Accounting-Request packet. Note that the Request Authenticator of an Accounting-Request can not be done the same way as the Request Authenticator of a RADIUS Access-Request, because there is no User-Password attribute in an Accounting-Request. Response Authenticator The Authenticator field in an Accounting-Response packet is called the Response Authenticator, and contains a one-way MD5 hash calculated over a stream of octets consisting of the Accounting- Response Code, Identifier, Length, the Request Authenticator field from the Accounting-Request packet being replied to, and the response attributes if any, followed by the shared secret. The resulting 16 octet MD5 hash value is stored in the Authenticator field of the Accounting-Response packet. Attributes Attributes may have multiple instances, in such a case the order of attributes of the same type SHOULD be preserved. The order of attributes of different types is not required to be preserved.4. Packet Types
The RADIUS packet type is determined by the Code field in the first octet of the packet. Rigney Informational [Page 7] RFC 2866 RADIUS Accounting June 20004.1. Accounting-Request
Description Accounting-Request packets are sent from a client (typically a Network Access Server or its proxy) to a RADIUS accounting server, and convey information used to provide accounting for a service provided to a user. The client transmits a RADIUS packet with the Code field set to 4 (Accounting-Request). Upon receipt of an Accounting-Request, the server MUST transmit an Accounting-Response reply if it successfully records the accounting packet, and MUST NOT transmit any reply if it fails to record the accounting packet. Any attribute valid in a RADIUS Access-Request or Access-Accept packet is valid in a RADIUS Accounting-Request packet, except that the following attributes MUST NOT be present in an Accounting- Request: User-Password, CHAP-Password, Reply-Message, State. Either NAS-IP-Address or NAS-Identifier MUST be present in a RADIUS Accounting-Request. It SHOULD contain a NAS-Port or NAS- Port-Type attribute or both unless the service does not involve a port or the NAS does not distinguish among its ports. If the Accounting-Request packet includes a Framed-IP-Address, that attribute MUST contain the IP address of the user. If the Access-Accept used the special values for Framed-IP-Address telling the NAS to assign or negotiate an IP address for the user, the Framed-IP-Address (if any) in the Accounting-Request MUST contain the actual IP address assigned or negotiated. A summary of the Accounting-Request packet format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Request Authenticator | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attributes ... +-+-+-+-+-+-+-+-+-+-+-+-+- Rigney Informational [Page 8] RFC 2866 RADIUS Accounting June 2000 Code 4 for Accounting-Request. Identifier The Identifier field MUST be changed whenever the content of the Attributes field changes, and whenever a valid reply has been received for a previous request. For retransmissions where the contents are identical, the Identifier MUST remain unchanged. Note that if Acct-Delay-Time is included in the attributes of an Accounting-Request then the Acct-Delay-Time value will be updated when the packet is retransmitted, changing the content of the Attributes field and requiring a new Identifier and Request Authenticator. Request Authenticator The Request Authenticator of an Accounting-Request contains a 16-octet MD5 hash value calculated according to the method described in "Request Authenticator" above. Attributes The Attributes field is variable in length, and contains a list of Attributes.4.2. Accounting-Response
Description Accounting-Response packets are sent by the RADIUS accounting server to the client to acknowledge that the Accounting-Request has been received and recorded successfully. If the Accounting- Request was recorded successfully then the RADIUS accounting server MUST transmit a packet with the Code field set to 5 (Accounting-Response). On reception of an Accounting-Response by the client, the Identifier field is matched with a pending Accounting-Request. The Response Authenticator field MUST contain the correct response for the pending Accounting-Request. Invalid packets are silently discarded. A RADIUS Accounting-Response is not required to have any attributes in it. A summary of the Accounting-Response packet format is shown below. The fields are transmitted from left to right. Rigney Informational [Page 9] RFC 2866 RADIUS Accounting June 2000 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Response Authenticator | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attributes ... +-+-+-+-+-+-+-+-+-+-+-+-+- Code 5 for Accounting-Response. Identifier The Identifier field is a copy of the Identifier field of the Accounting-Request which caused this Accounting-Response. Response Authenticator The Response Authenticator of an Accounting-Response contains a 16-octet MD5 hash value calculated according to the method described in "Response Authenticator" above. Attributes The Attributes field is variable in length, and contains a list of zero or more Attributes.5. Attributes
RADIUS Attributes carry the specific authentication, authorization and accounting details for the request and response. Some attributes MAY be included more than once. The effect of this is attribute specific, and is specified in each attribute description. The end of the list of attributes is indicated by the Length of the RADIUS packet. A summary of the attribute format is shown below. The fields are transmitted from left to right. Rigney Informational [Page 10] RFC 2866 RADIUS Accounting June 2000 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type The Type field is one octet. Up-to-date values of the RADIUS Type field are specified in the most recent "Assigned Numbers" RFC [6]. Values 192-223 are reserved for experimental use, values 224-240 are reserved for implementation-specific use, and values 241-255 are reserved and should not be used. This specification concerns the following values: 1-39 (refer to RADIUS document [2]) 40 Acct-Status-Type 41 Acct-Delay-Time 42 Acct-Input-Octets 43 Acct-Output-Octets 44 Acct-Session-Id 45 Acct-Authentic 46 Acct-Session-Time 47 Acct-Input-Packets 48 Acct-Output-Packets 49 Acct-Terminate-Cause 50 Acct-Multi-Session-Id 51 Acct-Link-Count 60+ (refer to RADIUS document [2]) Length The Length field is one octet, and indicates the length of this attribute including the Type, Length and Value fields. If an attribute is received in an Accounting-Request with an invalid Length, the entire request MUST be silently discarded. Value The Value field is zero or more octets and contains information specific to the attribute. The format and length of the Value field is determined by the Type and Length fields. Note that none of the types in RADIUS terminate with a NUL (hex 00). In particular, types "text" and "string" in RADIUS do not terminate with a NUL (hex 00). The Attribute has a length field and does not use a terminator. Text contains UTF-8 encoded 10646 Rigney Informational [Page 11] RFC 2866 RADIUS Accounting June 2000 [7] characters and String contains 8-bit binary data. Servers and servers and clients MUST be able to deal with embedded nulls. RADIUS implementers using C are cautioned not to use strcpy() when handling strings. The format of the value field is one of five data types. Note that type "text" is a subset of type "string." text 1-253 octets containing UTF-8 encoded 10646 [7] characters. Text of length zero (0) MUST NOT be sent; omit the entire attribute instead. string 1-253 octets containing binary data (values 0 through 255 decimal, inclusive). Strings of length zero (0) MUST NOT be sent; omit the entire attribute instead. address 32 bit value, most significant octet first. integer 32 bit unsigned value, most significant octet first. time 32 bit unsigned value, most significant octet first -- seconds since 00:00:00 UTC, January 1, 1970. The standard Attributes do not use this data type but it is presented here for possible use in future attributes.5.1. Acct-Status-Type
Description This attribute indicates whether this Accounting-Request marks the beginning of the user service (Start) or the end (Stop). It MAY be used by the client to mark the start of accounting (for example, upon booting) by specifying Accounting-On and to mark the end of accounting (for example, just before a scheduled reboot) by specifying Accounting-Off. A summary of the Acct-Status-Type attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rigney Informational [Page 12] RFC 2866 RADIUS Accounting June 2000 Type 40 for Acct-Status-Type. Length 6 Value The Value field is four octets. 1 Start 2 Stop 3 Interim-Update 7 Accounting-On 8 Accounting-Off 9-14 Reserved for Tunnel Accounting 15 Reserved for Failed5.2. Acct-Delay-Time
Description This attribute indicates how many seconds the client has been trying to send this record for, and can be subtracted from the time of arrival on the server to find the approximate time of the event generating this Accounting-Request. (Network transit time is ignored.) Note that changing the Acct-Delay-Time causes the Identifier to change; see the discussion under Identifier above. A summary of the Acct-Delay-Time attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rigney Informational [Page 13] RFC 2866 RADIUS Accounting June 2000 Type 41 for Acct-Delay-Time. Length 6 Value The Value field is four octets.5.3. Acct-Input-Octets
Description This attribute indicates how many octets have been received from the port over the course of this service being provided, and can only be present in Accounting-Request records where the Acct- Status-Type is set to Stop. A summary of the Acct-Input-Octets attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 42 for Acct-Input-Octets. Length 6 Value The Value field is four octets. Rigney Informational [Page 14] RFC 2866 RADIUS Accounting June 20005.4. Acct-Output-Octets
Description This attribute indicates how many octets have been sent to the port in the course of delivering this service, and can only be present in Accounting-Request records where the Acct-Status-Type is set to Stop. A summary of the Acct-Output-Octets attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 43 for Acct-Output-Octets. Length 6 Value The Value field is four octets.5.5. Acct-Session-Id
Description This attribute is a unique Accounting ID to make it easy to match start and stop records in a log file. The start and stop records for a given session MUST have the same Acct-Session-Id. An Accounting-Request packet MUST have an Acct-Session-Id. An Access-Request packet MAY have an Acct-Session-Id; if it does, then the NAS MUST use the same Acct-Session-Id in the Accounting- Request packets for that session. The Acct-Session-Id SHOULD contain UTF-8 encoded 10646 [7] characters. Rigney Informational [Page 15] RFC 2866 RADIUS Accounting June 2000 For example, one implementation uses a string with an 8-digit upper case hexadecimal number, the first two digits increment on each reboot (wrapping every 256 reboots) and the next 6 digits counting from 0 for the first person logging in after a reboot up to 2^24-1, about 16 million. Other encodings are possible. A summary of the Acct-Session-Id attribute format is shown below. The fields are transmitted from left to right. 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Text ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 44 for Acct-Session-Id. Length >= 3 String The String field SHOULD be a string of UTF-8 encoded 10646 [7] characters.5.6. Acct-Authentic
Description This attribute MAY be included in an Accounting-Request to indicate how the user was authenticated, whether by RADIUS, the NAS itself, or another remote authentication protocol. Users who are delivered service without being authenticated SHOULD NOT generate Accounting records. A summary of the Acct-Authentic attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rigney Informational [Page 16] RFC 2866 RADIUS Accounting June 2000 Type 45 for Acct-Authentic. Length 6 Value The Value field is four octets. 1 RADIUS 2 Local 3 Remote5.7. Acct-Session-Time
Description This attribute indicates how many seconds the user has received service for, and can only be present in Accounting-Request records where the Acct-Status-Type is set to Stop. A summary of the Acct-Session-Time attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 46 for Acct-Session-Time. Length 6 Value The Value field is four octets. Rigney Informational [Page 17] RFC 2866 RADIUS Accounting June 20005.8. Acct-Input-Packets
Description This attribute indicates how many packets have been received from the port over the course of this service being provided to a Framed User, and can only be present in Accounting-Request records where the Acct-Status-Type is set to Stop. A summary of the Acct-Input-packets attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 47 for Acct-Input-Packets. Length 6 Value The Value field is four octets.5.9. Acct-Output-Packets
Description This attribute indicates how many packets have been sent to the port in the course of delivering this service to a Framed User, and can only be present in Accounting-Request records where the Acct-Status-Type is set to Stop. A summary of the Acct-Output-Packets attribute format is shown below. The fields are transmitted from left to right. Rigney Informational [Page 18] RFC 2866 RADIUS Accounting June 2000 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 48 for Acct-Output-Packets. Length 6 Value The Value field is four octets.5.10. Acct-Terminate-Cause
Description This attribute indicates how the session was terminated, and can only be present in Accounting-Request records where the Acct- Status-Type is set to Stop. A summary of the Acct-Terminate-Cause attribute format is shown below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rigney Informational [Page 19] RFC 2866 RADIUS Accounting June 2000 Type 49 for Acct-Terminate-Cause Length 6 Value The Value field is four octets, containing an integer specifying the cause of session termination, as follows: 1 User Request 2 Lost Carrier 3 Lost Service 4 Idle Timeout 5 Session Timeout 6 Admin Reset 7 Admin Reboot 8 Port Error 9 NAS Error 10 NAS Request 11 NAS Reboot 12 Port Unneeded 13 Port Preempted 14 Port Suspended 15 Service Unavailable 16 Callback 17 User Error 18 Host Request The termination causes are as follows: User Request User requested termination of service, for example with LCP Terminate or by logging out. Lost Carrier DCD was dropped on the port. Lost Service Service can no longer be provided; for example, user's connection to a host was interrupted. Idle Timeout Idle timer expired. Session Timeout Maximum session length timer expired. Admin Reset Administrator reset the port or session. Rigney Informational [Page 20] RFC 2866 RADIUS Accounting June 2000 Admin Reboot Administrator is ending service on the NAS, for example prior to rebooting the NAS. Port Error NAS detected an error on the port which required ending the session. NAS Error NAS detected some error (other than on the port) which required ending the session. NAS Request NAS ended session for a non-error reason not otherwise listed here. NAS Reboot The NAS ended the session in order to reboot non-administratively ("crash"). Port Unneeded NAS ended session because resource usage fell below low-water mark (for example, if a bandwidth-on-demand algorithm decided that the port was no longer needed). Port Preempted NAS ended session in order to allocate the port to a higher priority use. Port Suspended NAS ended session to suspend a virtual session. Service Unavailable NAS was unable to provide requested service. Callback NAS is terminating current session in order to perform callback for a new session. User Error Input from user is in error, causing termination of session. Host Request Login Host terminated session normally.5.11. Acct-Multi-Session-Id
Description This attribute is a unique Accounting ID to make it easy to link together multiple related sessions in a log file. Each session linked together would have a unique Acct-Session-Id but the same Acct-Multi-Session-Id. It is strongly recommended that the Acct- Multi-Session-Id contain UTF-8 encoded 10646 [7] characters. A summary of the Acct-Session-Id attribute format is shown below. The fields are transmitted from left to right. Rigney Informational [Page 21] RFC 2866 RADIUS Accounting June 2000 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | String ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 50 for Acct-Multi-Session-Id. Length >= 3 String The String field SHOULD contain UTF-8 encoded 10646 [7] characters.5.12. Acct-Link-Count
Description This attribute gives the count of links which are known to have been in a given multilink session at the time the accounting record is generated. The NAS MAY include the Acct-Link-Count attribute in any Accounting-Request which might have multiple links. A summary of the Acct-Link-Count attribute format is show below. The fields are transmitted from left to right. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Value (cont) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Rigney Informational [Page 22] RFC 2866 RADIUS Accounting June 2000 Type 51 for Acct-Link-Count. Length 6 Value The Value field is four octets, and contains the number of links seen so far in this Multilink Session. It may be used to make it easier for an accounting server to know when it has all the records for a given Multilink session. When the number of Accounting-Requests received with Acct-Status-Type = Stop and the same Acct-Multi-Session-Id and unique Acct-Session- Id's equals the largest value of Acct-Link-Count seen in those Accounting-Requests, all Stop Accounting-Requests for that Multilink Session have been received. An example showing 8 Accounting-Requests should make things clearer. For clarity only the relevant attributes are shown, but additional attributes containing accounting information will also be present in the Accounting-Request.  Table of Attributes
The following table provides a guide to which attributes may be found in Accounting-Request packets. No attributes should be found in Accounting-Response packets except Proxy-State and possibly Vendor- Specific. # Attribute 0-1 User-Name 0 User-Password 0 CHAP-Password Rigney Informational [Page 23] RFC 2866 RADIUS Accounting June 2000 0-1 NAS-IP-Address [Note 1] 0-1 NAS-Port 0-1 Service-Type 0-1 Framed-Protocol 0-1 Framed-IP-Address 0-1 Framed-IP-Netmask 0-1 Framed-Routing 0+ Filter-Id 0-1 Framed-MTU 0+ Framed-Compression 0+ Login-IP-Host 0-1 Login-Service 0-1 Login-TCP-Port 0 Reply-Message 0-1 Callback-Number 0-1 Callback-Id 0+ Framed-Route 0-1 Framed-IPX-Network 0 State 0+ Class 0+ Vendor-Specific 0-1 Session-Timeout 0-1 Idle-Timeout 0-1 Termination-Action 0-1 Called-Station-Id 0-1 Calling-Station-Id 0-1 NAS-Identifier [Note 1] 0+ Proxy-State 0-1 Login-LAT-Service 0-1 Login-LAT-Node 0-1 Login-LAT-Group 0-1 Framed-AppleTalk-Link 0-1 Framed-AppleTalk-Network 0-1 Framed-AppleTalk-Zone 1 Acct-Status-Type 0-1 Acct-Delay-Time 0-1 Acct-Input-Octets 0-1 Acct-Output-Octets 1 Acct-Session-Id 0-1 Acct-Authentic 0-1 Acct-Session-Time 0-1 Acct-Input-Packets 0-1 Acct-Output-Packets 0-1 Acct-Terminate-Cause 0+ Acct-Multi-Session-Id 0+ Acct-Link-Count 0 CHAP-Challenge Rigney Informational [Page 24] RFC 2866 RADIUS Accounting June 2000 0-1 NAS-Port-Type 0-1 Port-Limit 0-1 Login-LAT-Port [Note 1] An Accounting-Request MUST contain either a NAS-IP-Address or a NAS-Identifier (or both). The following table defines the above table entries. 0 This attribute MUST NOT be present 0+ Zero or more instances of this attribute MAY be present. 0-1 Zero or one instance of this attribute MAY be present. 1 Exactly one instance of this attribute MUST be present.6. IANA Considerations
The Packet Type Codes, Attribute Types, and Attribute Values defined in this document are registered by the Internet Assigned Numbers Authority (IANA) from the RADIUS name spaces as described in the "IANA Considerations" section of RFC 2865 [2], in accordance with BCP 26 [8].7. Security Considerations
Security issues are discussed in sections concerning the authenticator included in accounting requests and responses, using a shared secret which is never sent over the network.8. Change Log
US-ASCII replaced by UTF-8. Added notes on Proxy. Framed-IP-Address should contain the actual IP address of the user. If Acct-Session-ID was sent in an access-request, it must be used in the accounting-request for that session. New values added to Acct-Status-Type. Added an IANA Considerations section. Updated references. Text strings identified as a subset of string, to clarify use of UTF-8. Rigney Informational [Page 25] RFC 2866 RADIUS Accounting June 20009. References
[1] Rigney, C., "RADIUS Accounting", RFC 2139, April 1997. [2] Rigney, C., Willens, S., Rubens, A. and W. Simpson, "Remote Authentication Dial In User Service (RADIUS)", RFC 2865, June 2000. [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March, 1997. [4] Postel, J., "User Datagram Protocol", STD 6, RFC 768, August 1980. [5] Rivest, R. and S. Dusse, "The MD5 Message-Digest Algorithm", RFC 1321, April 1992. [6] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700, October 1994. [7] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC 2279, January 1998. [8] Alvestrand, H. and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.10. Acknowledgements
RADIUS and RADIUS Accounting were originally developed by Steve Willens of Livingston Enterprises for their PortMaster series of Network Access Servers.11. Chair's Address
The RADIUS working group can be contacted via the current chair: Carl Rigney Livingston Enterprises 4464 Willow Road Pleasanton, California 94588 Phone: +1<PHONE_NUMBER> EMail<EMAIL_ADDRESS>Rigney Informational [Page 26] RFC 2866 RADIUS Accounting June 200012. Author's Address
Questions about this memo can also be directed to: Carl Rigney Livingston Enterprises 4464 Willow Road Pleasanton, California 94588 EMail<EMAIL_ADDRESS>Rigney Informational [Page 27] RFC 2866 RADIUS Accounting June 200013. Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.  Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Rigney Informational [Page 28]


These Slides: TheJefe.github.io/automation/ Created by Jeff Koenig Twitter: @JeffKoenig Github: TheJefe
Because we want to ship code fast.
Find major issues in your codes in minutes, rather then weeks
Because weeks of manual regressions tests is mind-numbing.
maintaining manual test scripts is monotonous
It frees up your team to do more interesting things.
configure it be part of your workflow
automatically deploy your staging environment
Start with your core stuff
When you find a bug, write a test to reproduce it
New features means new tests
Write some automated tests to expose those issues
Automated tasks that fit to your workflow
Trigger Build/Tests for Feature and Release Candidate branches
When code passes all tests, a production deployment is triggered
Welcome to Automation Nirvana
Code with failing tests SHALL NOT be MERGED
Code with failing tests SHALL NOT be DEPLOYED
New features SHALL NOT be merged without tests
git rebase -i
Chat bot that hears and responds to specific things in chat
Courtesy of Carol Nichols


|
libcoap
4.3.0
|
Structure to hold large body (many blocks) server receive information. More...
#include <coap_block_internal.h>
Data Fields | |
| struct coap_lg_srcv_t * | next |
| uint8_t | observe [3] |
| Observe data (if set) (only 24 bits) More... | |
| uint8_t | observe_length |
| Length of observe data. More... | |
| uint8_t | observe_set |
| Set if this is an observe receive PDU. More... | |
| uint8_t | rtag_set |
| Set if RTag is in receive PDU. More... | |
| uint8_t | rtag_length |
| RTag length. More... | |
| uint8_t | rtag [8] |
| RTag for block checking. More... | |
| uint16_t | content_format |
| Content format for the set of blocks. More... | |
| uint8_t | last_type |
| Last request type (CON/NON) More... | |
| uint8_t | szx |
| size of individual blocks More... | |
| size_t | total_len |
| Length as indicated by SIZE1 option. More... | |
| coap_binary_t * | body_data |
| Used for re-assembling entire body. More... | |
| size_t | amount_so_far |
| Amount of data seen so far. More... | |
| coap_resource_t * | resource |
| associated resource More... | |
| coap_str_const_t * | uri_path |
| coap_rblock_t | rec_blocks |
| set to uri_path if unknown resource More... | |
| uint8_t | last_token [8] |
| < list of received blocks More... | |
| size_t | last_token_length |
| length of token More... | |
| coap_mid_t | last_mid |
| Last received mid for this set of packets. More... | |
| coap_tick_t | last_used |
| Last time data sent or 0. More... | |
| uint16_t | block_option |
| Block option in use. More... | |
Structure to hold large body (many blocks) server receive information.
Definition at line 127 of file coap_block_internal.h.
| size_t coap_lg_srcv_t::amount_so_far |
Amount of data seen so far.
Definition at line 140 of file coap_block_internal.h.
| uint16_t coap_lg_srcv_t::block_option |
Block option in use.
Definition at line 148 of file coap_block_internal.h.
| coap_binary_t* coap_lg_srcv_t::body_data |
Used for re-assembling entire body.
Definition at line 139 of file coap_block_internal.h.
| uint16_t coap_lg_srcv_t::content_format |
Content format for the set of blocks.
Definition at line 135 of file coap_block_internal.h.
| coap_mid_t coap_lg_srcv_t::last_mid |
Last received mid for this set of packets.
Definition at line 146 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::last_token[8] |
| size_t coap_lg_srcv_t::last_token_length |
length of token
Definition at line 145 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::last_type |
Last request type (CON/NON)
Definition at line 136 of file coap_block_internal.h.
| coap_tick_t coap_lg_srcv_t::last_used |
Last time data sent or 0.
Definition at line 147 of file coap_block_internal.h.
| struct coap_lg_srcv_t* coap_lg_srcv_t::next |
Definition at line 128 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::observe[3] |
Observe data (if set) (only 24 bits)
Definition at line 129 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::observe_length |
Length of observe data.
Definition at line 130 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::observe_set |
Set if this is an observe receive PDU.
Definition at line 131 of file coap_block_internal.h.
| coap_rblock_t coap_lg_srcv_t::rec_blocks |
set to uri_path if unknown resource
Definition at line 143 of file coap_block_internal.h.
| coap_resource_t* coap_lg_srcv_t::resource |
associated resource
Definition at line 141 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::rtag[8] |
RTag for block checking.
Definition at line 134 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::rtag_length |
RTag length.
Definition at line 133 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::rtag_set |
Set if RTag is in receive PDU.
Definition at line 132 of file coap_block_internal.h.
| uint8_t coap_lg_srcv_t::szx |
size of individual blocks
Definition at line 137 of file coap_block_internal.h.
| size_t coap_lg_srcv_t::total_len |
Length as indicated by SIZE1 option.
Definition at line 138 of file coap_block_internal.h.
| coap_str_const_t* coap_lg_srcv_t::uri_path |
Definition at line 142 of file coap_block_internal.h.


| Home | Messages | Classes | Class XRef | Sample |
The Classification class is an abstract class used to organize a number of subclasses that define instances used for grouping and summarization purposes. Instances of Classification subclasses are normally referenced by other Entity instances. For example, the property country could be define for the class Company to return an instance of the Country class representing the country in which the company is based and the property industry could be defined to return an instance of the class Industry representing the company's major industry.
The Classification class is a direct subclass of Entity:
Object
|
Entity
|
Classification
|
|-- RangeClassification
The class Classification is used to unify all the protocol that is common to classifications. Your installation may define any number of subclasses of Classification. To determine which subclasses have been defined, use the expression:
Classification showInheritance
The standard messages are used to create new subclasses, instances, and messages for the Classification subclasses. For example, to define a new subclass and some instances representing countries and a property that links specific currencies to specific countries, use the following:
#-- Define the new class and some instances Classification createSubclass: "Country" ; Country createInstance: "US" . setNameTo: "Unites States" ; Country createInstance: "CA" . setNameTo: "Canada" ; #-- Define a message at Currency that returns country Currency defineFixedProperty: 'country' ; Named Currency USD :country <- Named Country US ; Named Currency CAD :country <- Named Country CA ;
Instances of many classification subclasses are often managed as a hierarchy. For example, Industry 123 may refer to "Book Publishing", Industry 120 may refer to "General Publishing", and Industry 100 may refer to "General Media". It is often useful to be able to link these instances. The property parent is defined at Classification and is used to store a reference to another instance of the class that represents the parent instance. The message setParentTo: allows you to set up these relationships.  The message displayHierarchy displays the industry hierarchy:
Named Industry \123 displayHierarchy produces: 123 Book Publishing 120 General Publishing 100 General Media
When new instances are created, the parent property is initialized to return the new instance. The isParent message returns TRUE if the recipient is its own parent instance.
The class RangeClassification has been created to manage classes whose instances are used to assign values falling into a particular numeric range. Instances are not directly created for this class; instead, you would create subclasses of RangeClassification for each distinct range being tracked. Instances of subclasses of RangeClassification define the properties lowerBound and upperBound. The message getClassificationFor: inputValue is used to access the instance whose range contains the supplied value. The message rangeName returns a string formatted as:
(lowerBound, upperBound)For example, you can create a class to track market capitalization ranges using:
RangeClassification createSubclass: "MCapGroup"New instances are created by supplying the lower and upper boundary values to the createInstance: message. NA values are used to indicate that a lower or upper bound is undefined: For example, you can create the instances for MCapGroup using:
MCapGroup createInstance: NA, 400 . setNameTo: "less than $400M" ; MCapGroup createInstance: 400, 1000 . setNameTo: "$400M - $1,000M" ; MCapGroup createInstance: 1000, 2000 . setNameTo: "$1,000M - $2,000M" ; MCapGroup createInstance: 2000, 5000 . setNameTo: "$2,000M - $5,000M" ; MCapGroup createInstance: 5000, NA . setNameTo: "greater than $5,000M" ;The expression:
MCapGroup getClassificationFor: 2300returns the instance represented by the range 2000,5000 . Selection is done using:
inputValue >= lowerBound && inputValue < upperBoundAssume that the property marketCap is defined for the class Security to return a numeric value. For reporting purposes you may want to group your securities into their market capitalization range and display summary data for each group. For example:
Security masterList extendBy: [ !mcapGroup <- ^global MCapGroup getClassificationFor: marketCap ; ] . groupedBy: [ mcapGroup ] . do: [ name print: 30 ; groupList count print ; groupList min: [ marketCap ] . print ; groupList max: [ marketCap ] . printNL ; ] ;
| Copyright © 1997 Innovative Systems Techniques, Inc. | Updated June 19, 1997 |