Welcome to the user help file for CRITs.
There are two ways to use this help file. Use the Table of Contents, below, to pick a subject. Alternatively, you can use your browser's Find command to search through the document for a specific word of phrase.
Contents
| Date: | Mon, 27 Jan 2014 |
|---|---|
| Revision: | 0002 |
| Date: | Mon, 19 Aug 2013 |
| Revision: | 0001 |
Please observe the following notes:
This section contains release notes to illustrate the changes for each revision.
| Revision 00002: | Written for CRITs 3.0 |
|---|---|
| Revision 00001: | Initial commit. Written for CRITs 2.5 |
This section details icons, terms, and concepts that are used throughout the CRITs world.
A certain level of experience with Information Security is required to make proper use of CRITs. What follows are short explanations of concepts that are used in the world of CRITs. These are not meant to be exhaustive definitions. Instead, think of it as a Rosetta Stone to ensure that your own concepts and experience match the terms used in the system.
Source is the term used to refer, very simply, to the intelligence source from which an object was imported. Alternatively, they can be considered as organizational units or buckets. Each object in CRITs needs to be attributed to a source, This allows you to get a better overall picture not only of the environment that the source represents, but a better feel for how reliable the object are from a particular source.
Sources are specified by your administrator, and there is no universal "right way" to define them. Having a solid understanding of how your organization defines sources will ensure that your own efforts will be compliant.
In order to expedite navigation, CRITs has built-in keyboard shortcuts available after clicking on the Navigation Menu. Below is a list of these shortcuts. Note that the shortcuts are case sensitive.
a: Advanced Search d: Add a Domain e: Add an Email E: Add an Event i: Add an Indicator I: Add an IP Address n/m: Open the Navigation Menu p: Add a PCAP s: Add a Sample
The Advanced Search dialog can be accessed by clicking on the "Hourglass" icon next to the search box in the upper right corner. This will allow you to search for items based on a number of criteria. Entering a term into any of the fields will search all of the fields of that type of indicator. For example, entering "Bob" into the "Email" field will return all emails that mention "Bob" in either the header or the body of the message.
CRITs works in most modern browsers, with support for the following:
Note that IE 9 users may experience some rendering issues. If so, do the following:
When you browse to your CRITs instance you will be greeted with a Login page. From here you can authenticate or get assistance with resetting your password.
Your administrator should provide you with a username, password, and URL for logging into CRITs. If not, please contact your administrator; you will be unable to proceed without this information.
Once logged in, you will be greeted with your Dashboard. It's a good idea, at this point, to change your temporary password. For more information, see How to Change Your Password. Remember, a system can only be as secure as its least secure user!
There are five pieces of the UI that are always available to you no matter what page you are on:
The top bar which contains:
- The Gear image, from which you can access the Navigation Menu.
- Your Profile Information.
- Your Assigned Role.
- Search Bar.
The bottom bar which contains:
- Host and Instance information.
- Your Last Login Date.
- The Security Classification of this CRITs instance.
- Copyright Information.
The Navigation menu.
The Advanced Search menu.
The content area between the top and bottom bar.
The following sections describe each of these areas in more detail.
Dashboards can be created and custmized to your liking. The easiest way to create your own is to alter a public dashboard and save it. This will replace the public dashboard with your modified copy of it. You can revert back to the public one at any time by simplying deleting your modified copy on the Dashboard Configurations page.
Additionally, you may add your own tables to the dashboard by clicking "Configure for Dashboard" on the search results page. Onced clicked, you will be brought to a page where you can customize your table and then choose which dashboard you want to pin it to. You also have the option of creating a new dashboard.
To assist in the easier identification of users, CRITs includes several profile fields that help to identify you to other users in your instance. Clicking the link will bring you to your User Profile Page.
This section simply lists the role that has been assigned to you by your administrator. These roles are fully customizable, so your individual experience will vary.
The search bar acts as a universal query tool that will query the entire CRITs database for the term entered. This can be useful when for quick access to any item by name or content. This is also known as the "Global Search Box"
The host and instance information sections display information set by your administrator that helps to confirm that you are using the intended system. It is a good idea to ask your administrator the expected values of these items to provide a modicum of identity confirmation.
This are simply displays the last date upon which you logged into the system. This can be useful as a point of basic security; seeing that you logged on during your vacation, for instance, is a sign that either your credentials were misused or that you work too hard.
Like the host and instance information, the security classification is used to denote the classification level of the contents of the system. U.S. government entities or their contractors, for instance, may operate an instance that is classified as "Secret". As a best practice, the default value for this should be "Unclassified".
Text marking the U.S. copyright information of CRITs.
The User Profile page can be reached from any section of CRITs by clicking on your username in the upper left corner. You can also get to this page by going to "My CRITs" in the navigation menu. On this page, you will find a number of personalization options, usage history, and subscription information.
This tab displays information about your account and general usage. Most importantly, this is where you will find the change password functionality. See How to Change Your Password for more information.
This tab presents you with a table of all of your recent login attempts. Information such as user agent (i.e. browser), IP, and date are all available.
This tab presents you with a table of all of your recent activity in the system.
This tab lists your current subscriptions.
This tab lists the current information sources to which you have access. Only items associated with these sources will be visible within CRITs. You can also check a box next to each source which will subscribe you to any and all content associated with that source going forward.
This tab lists all of your existing notifications. You can remove individual notifications, or clear them all. Note that by visiting the details page of any top-level object, it will clear any notifications you have for it automatically.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the campaigns to which you have access. The table on this page shows, by default, the first 25 campaigns sorted by name. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new campaign to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Campaign".
- From the Campaign Page, click the "Add campaign" button.
Doing either of these will open a new dialog box that allows you to define a new campaign. A campaign consists of some basic pieces of information, as follows:
| Campaign: | This is the display name for the campaign. |
|---|---|
| Aliases: | This is a comma-separated list of any other names for the campaign. |
| Description: | This is a brief description of the campaign for reference. |
| Bucket List: | This is a list of buckets you want to associate with this Campaign. |
Once these fields are filled out, press "Add Campaign". You should see a message that the campaign was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the campaign, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new campaign in the table.
Opening a campaign via the Campaign Page or Advanced Search will bring up the campaign information page.
From here, you can view all of the objects that are associated with the campaign. The tabs at the top of the screen move you between the various child objects of the campaign. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively. For more information on controls, please see the Terms and Concepts section.
When Viewing/Editing an Existing Campaign, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the certificate to which you have access. The table on this page shows, by default, the first 25 certificates sorted by date. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new certificate to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Certificates".
- From the Certificate Page, click the "Add certificate" button.
Doing either of these will open a new dialog box that allows you to define a new certificate. A certificate consists of some basic pieces of information, as follows:
| Filedata: | Choose a local file to upload as the Certificate |
|---|---|
| Description: | Enter a brief description for the Certificate |
| Source: | From the drop-down, select the source of the Certificate |
| Bucket List: | This is a list of buckets you want to associate with this Certificate. |
Once these fields are filled out, press "Add Certificate". You should see a message that the certificate was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the certificate, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new certificate in the table.
Opening a certificate via the Certificate Page or Advanced Search will bring up the certificate information page.
From here, you can view all of the objects that are associated with the certificate. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively. For more information on controls, please see the Terms and Concepts section.
When Viewing/Editing an Existing Certificate, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the domains to which you have access. The table on this page shows, by default, the first 25 domains sorted by name. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new domain to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Domain".
- From the Domain Page, click the "Add Domain" button.
Doing either of these will open a new dialog box that allows you to define a new domain. A domain consists of seven pieces of information, as follows:
| Domain Name: | This is the FQDN and display name. |
|---|---|
| Campaign: | (Optional) This field allows you to associate the domain with a specific campaign. |
| Domain Source: | This is the intelligence source from which you learned of the domain. |
| Domain Method: | (Optional) |
| Domain Reference: | |
| (Optional) | |
| Add IP Address: | Checking this box will allow you to immediately add and IP Address with which the domain is associated. |
| Add Indicator(s): | |
| Checking this box will allow you add the domain as an indicator. | |
| Bucket List: | This is a list of buckets you want to associate with this Domain (and any other Domains, IPs, Indicators generated by this step). |
Once these fields are filled out, press "Add Domain". You should see a message that the domain was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the domain, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new domain in the table.
Opening a domain via the Domain Page or Advanced Search will bring up the domain information page.
From here, you can view all of the objects that are associated with the domain. The tabs at the top of the screen move you between the various child objects of the domain. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively. For more information on controls, please see the Terms and Concepts section.
When Viewing/Editing an Existing Domain, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the emails to which you have access. The table on this page shows, by default, the first 25 emails sorted by name. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new email to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Emails".
- From the Email Page, click the "Add Email" button.
Doing either of these will open a new dialog box that allows you to define a new email. An email consists of seventeen pieces of information, most of which can be found in the email header, as follows:
| From: | Specify the email address from which the email was sent |
|---|---|
| Sender: | Specify the name from which the email was sent |
| To: | Specify the email addresses to which the email was sent |
| CC: | Specify the email addresses to which the email was copied |
| Subject: | Specify the subject line of the email |
| Date: | Specify the date on which the email was sent |
| Reply To: | Specify the reply-to email address of the email |
| HELO: | Identity passed by sender to SMTP server |
| Boundary: | SMTP server that located target host |
| Message ID: | Message ID from header |
| Originating IP: | Originating IP of SMTP request |
| X-Originating IP: | |
| X-Originating IP from header | |
| X-Mailer: | Software used to send email |
| Raw Header: | Copied from the message |
| Raw Body: | Copied from the message |
| Source: | Intelligence source from which the email was captured |
| Source Reference: | |
| Add specific references | |
| Bucket List: | This is a list of buckets you want to associate with this Email. |
Once these fields are filled out, press "Add Email". You should see a message that the email was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the email, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new email in the table.
Opening an email via the Email Page or Advanced Search will bring up the email information page.
From here, you can view all of the objects that are associated with the email. The tabs at the top of the screen move you between the various child objects of the email. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
Of note, there are three specific buttons at the top of the "Details" tab. "Add Attachment" will open a dialog box that will allow you to upload an attachment associated with the email, most commonly the email itself. Pressing the "Download Email" button will let you download object information in various formats. Lastly, the "Delete Email" button will remove the email from the CRITs database.
Tabs at the top of this page will present various views of the email object data for further analysis.
For more information on controls, please see the Terms and Concepts section.
When Viewing/Editing an Existing Email, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the events to which you have access. The table on this page shows, by default, the first 25 events sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new event to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Events".
- From the Event Page, click the "Add Event" button.
Doing either of these will open a new dialog box that allows you to define a new event. An event consists of six pieces of information, as follows:
| Title: | A title by which to identify the event |
|---|---|
| Event Type: | From the drop-down, select a pre-defined type |
| Description: | (Optional) Provide a brief description of the event |
| Occurrence Date: | |
| The date on which the event occurred | |
| Source: | From the drop-down, select the source of the event |
| Reference: | (Optional) This is an undefined field; it is suggested that it be used to track a corresponding ID in an external system. |
| Method: | (Optional) This is an undefined field; it is suggested that it be used to denote the external tool that collected the event. |
| Bucket List: | This is a list of buckets you want to associate with this Event. |
Once these fields are filled out, press "Add Event". You should see a message that the event was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the event, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new event in the table.
Opening an event via the Event Page or Advanced Search will bring up the event information page.
From here, you can view all of the fields that are associated with the event object. The tabs at the top of the screen move you between the various child objects of the event. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
Of note, there are three specific buttons at the top of the "Details" tab. "Add Sample" will open a dialog box that will allow you to upload malware or other sample associated with the event. Pressing the "Download Event" button will let you download object information in various formats. Lastly, the "Delete Event" button will remove the event from the CRITs database.
For more information on controls, please see the Terms and Concepts section.
When Viewing/Editing an Existing Event, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the indicators to which you have access. The table on this page shows, by default, the first 25 indicators sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new indicator to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Events". You may also click on either of the following options that will appear in a sub-menu to the right: "New Indicator Blob" or "New Indicator CSV"
- From the Indicator Page, click the "Add Indicator" button.
Doing either of these will open a new dialog box that allows you to define a new indicator. An indicator consists of eight pieces of information, as follows:
| Indicator Type: | Choose the type of indicator from the drop-down. |
|---|---|
| Value: | Define the value for the indicator |
| Description: | Enter a brief description for the indicator |
| Confidence: | Select the confidence level for the indicator |
| Impact: | Select the level of impact for the indicator |
| Campaign: | (Optional) Select a campaign with which to associate the indicator |
| Campaign Confidence: | |
| (Optional) Select a confidence level for the association with the campaign | |
| Source: | From the drop-down, select the source of the indicator |
| Reference: | (Optional) Reference for the indicator |
| Bucket List: | This is a list of buckets you want to associate with this Indicator. |
Note
Athough the "Confidence" and "Campaign Confidence" fields may be defined individually by your organization (or, indeed, have custom values set by your administrator), it is useful to have a "default" rating suggestion. Therefore, proposed meanings for the respective ratings follow.
| Unknown: | The indicator has not been seen before, nor has it been reported by a trusted source; this is used to mark "hunches" that require confirmation. |
|---|---|
| Benign: | The indicator is known to be false, and should be ignored when identifying malware. |
| Low: | The indicator has not been seen, but comes from a medium- or high-confidence source. |
| Medium: | The indicator has been confirmed and/or it comes from a high-confidence source. |
| High: | The indicator has been confirmed multiple times. |
| Low: | The campaign is not well defined and/or the indicator is not directly related to any other associated indicator. |
|---|---|
| Medium: | The campaign is confirmed and/or the indicator directly relates to another, associated indicator. |
| High: | The campaign is confirmed and well-known and/or the indicator is directly related to more than one other indicator associated with the campaign. |
Once these fields are filled out, press "Upload Indicator". You should see a message that the indicator was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the indicator, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new indicator in the table.
Opening an indicator via the Indicator Page or Advanced Search will bring up the indicator information page.
From here, you can view all of the fields that are associated with the indicator object. The tabs at the top of the screen move you between the various child objects of the indicator. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
For more information on controls, please see the Terms and Concepts section.
When Viewing/Editing an Existing Indicator, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the IP to which you have access. The table on this page shows, by default, the first 25 IP sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new IP to CRITs:
- Open the Navigation Menu and click the cross symbol next to "IPs".
- From the IP Page, click the "Add IP" button.
Doing either of these will open a new dialog box that allows you to define a new IP entry. An IP consists of seven pieces of information, as follows:
| IP: | The IP address to record |
|---|---|
| IP Type: | Choose the type of record |
| Analyst: | Analyst who is reporting the IP |
| Source: | From the drop-down, select the source of the IP |
| Source method: | (Optional) Record how the IP was sourced |
| Source reference: | |
| (Optional) Reference for the IP source | |
| Add Indicator: | (Optional) Check to add an indicator for the IP as well |
| Bucket List: | This is a list of buckets you want to associate with this IP. |
Once these fields are filled out, press "Add IP". You should see a message that the IP was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the IP, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new IP in the table.
Opening an IP via the IP Page or Advanced Search will bring up the IP information page.
From here, you can view all of the fields that are associated with the IP object. The tabs at the top of the screen move you between the various child objects of the indicator. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
For more information on controls, pleas see the Terms and Concepts section.
When Viewing/Editing an Existing IP, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the PCAPs (Packet Captures) to which you have access. The table on this page shows, by default, the first 25 PCAP sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new PCAP to CRITs:
- Open the Navigation Menu and click the cross symbol next to "PCAPs".
- From the PCAP Page, click the "Add PCAP" button.
Doing either of these will open a new dialog box that allows you to define a new PCAP. A PCAP consists of three pieces of information, as follows:
| Filedata: | Choose a local file to upload as the PCAP sample |
|---|---|
| Description: | Enter a brief description for the PCAP |
| Source: | From the drop-down, select the source of the PCAP |
| Bucket List: | This is a list of buckets you want to associate with this PCAP. |
Once these fields are filled out, press "Upload PCAP". You should see a message that the PCAP was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the PCAP, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new PCAP in the table.
Opening a PCAP via the PCAP Page or Advanced Search will bring up the PCAP information page.
From here, you can view all of the fields that are associated with the PCAP object. The tabs at the top of the screen move you between the various child objects of the indicator. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
For more information on controls, pleas see the Terms and Concepts section.
When Viewing/Editing an Existing PCAP, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the Samples to which you have access. The table on this page shows, by default, the first 25 Samples sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new Sample to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Samples".
- From the Sample Page, click the "Add Sample" button.
Doing either of these will open a new dialog box that allows you to define a new Sample. When creating a new sample, you must choose between uploading a sample file or uploading sample metadata. A Sample file consists of nine pieces of information, as follows:
| Upload type: | Choose whether the sample is a file or metadata |
|---|---|
| Filedata: | Choose a local file to upload as the Sample |
| File format: | Select the format of the Sample being uploaded |
| Password: | (Optional) Enter the password for the Sample file |
| Email Me Results: | |
| Select to have CRITs email you analysis results | |
| Parent md5: | The MD5 hash for the Sample file |
| Source: | From the drop-down, select the source of the Sample |
| Reference: | Reference for the Sample |
| Bucket List: | This is a list of buckets you want to associate with this Sample. |
Should you select "Metadata Upload" as the upload type, the required information changes. A Sample metadata consists of seven piece of information, as follows:
| Upload type: | Choose whether the sample is a file or metadata |
|---|---|
| Filename: | The name of the file encountered |
| MD5: | The MD5 has for the sample |
| Email Me Results: | |
| Select to have CRITs email you analysis results | |
| Parent md5: | The MD5 hash for the Sample file |
| Source: | From the drop-down, select the source of the Sample |
| Reference: | Reference for the Sample |
| Bucket List: | This is a list of buckets you want to associate with this Sample. |
Once these fields are filled out, press "Upload Sample". You should see a message that the Sample was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the Sample, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new Sample in the table.
Opening a Sample via the Sample Page or Advanced Search will bring up the Sample information page.
From here, you can view all of the fields that are associated with the Sample object. The tabs at the top of the screen move you between the various child objects of the Sample. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
For more information on controls, pleas see the Terms and Concepts section.
When Viewing/Editing an Existing Sample, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the Signatures to which you have access. The table on this page shows, by default, the first 25 Signatures sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new Signature to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Signatures".
- From the Signature Page, click the "Add Signature" button.
Doing either of these will open a new dialog box that allows you to define a new Signature entry. A Signature consists of eight pieces of information, as follows:
| Title: | The title of the signature to record |
|---|---|
| Data Type: | Choose the data type of record |
| Description: | Full description of the signature record |
| Data: | Actual signature |
| Source: | From the drop-down, select the source of the Signature |
| Source Method: | (Optional) Record how the Signature was sourced |
| Source Reference: | |
| (Optional) Reference for the Signature source | |
| Bucket List: | This is a list of buckets you want to associate with this Signature. |
| Ticket: | Associated Ticket. |
Once these fields are filled out, press "Add Signature". You should see a message that the Signature was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the Signature, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new Signature in the table.
Opening an Signature via the Signature Page or Advanced Search will bring up the Signature information page.
From here, you can view all of the fields that are associated with the Signature object. The tabs at the top of the screen move you between the various child objects of the indicator. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
For more information on controls, pleas see the Terms and Concepts section.
When Viewing/Editing an Existing Signature, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This page can be accessed directly from the Navigation Menu. From here, you can manage all of the targets to which you have access. The table on this page shows, by default, the first 25 Targets sorted by date added. See Table Navigation for more information on how to interact with the table.
There are two common ways to add a new target to CRITs:
- Open the Navigation Menu and click the cross symbol next to "Targets".
- From the Sample Page, click the "Add Target" button.
Doing either of these will open a new dialog box that allows you to define a new target. A target consists of eight pieces of information, as follows:
| Firstname: | (Optional) First name of the target |
|---|---|
| Lastname: | (Optional) Last name of the target |
| Division: | (Optional) Organization division for the target |
| Department: | (Optional) Organizational department for the target |
| Email address: | The email address of the target |
| Organization id: | |
| (Optional) An internal organization id for the target | |
| Title: | (Optional) The title held by the target |
| Note: | Miscellaneous notes |
| Bucket List: | This is a list of buckets you want to associate with this Target. |
Once these fields are filled out, press "Add Target". You should see a message that the target was successfully added. If you encounter an error, report it to your administrator.
Now that you have added the target, press "Cancel" or ESCAPE to close the dialog box. Press "Reload" to see your new target in the table.
Opening a target via the Target Page or Advanced Search will bring up the target information page.
From here, you can view all of the fields that are associated with the target object. The tabs at the top of the screen move you between the various child objects of the target. Clicking on the various links and icons will allow you to edit existing data or add new data, respectively.
For more information on controls, pleas see the Terms and Concepts section.
When Viewing/Editing an Existing Target, you have the option to subscribe to it so that it will show up on your User Profile Page under the "Subscriptions" tab. Simply select the blue checkmark next to your Assigned Role. When you do, the check mark will change to an 'X', indicating that you are now subscribed. To unsubscribe, click the 'X' and it will turn back to a check mark to confirm.
This section explains administrative functions to which users have access.
Follow these steps to change your password.
- Click on your name in the upper left corner. This will bring you to the User Info Tab.
- Click on the "Change Password" button.
- Enter in your old password, new password, and confirm your new password.
- Click "Submit".
CRITs comes with an authenticated API. It is disabled by default and must be enabled in the Control Panel. Once it is enabled you must restart the web server for the URLs to be exposed. The API leverages Tastypie. A lot of the features of Tastypie are overridden by CRITs code for our needs. More information on Tastypie can be found here:
http://tastypieapi.org/
Users can visit their profile page and generate API keys for their necessary tasks. Each API key can be revoked if that key becomes compromised or the user no longer wishes to use it.
If you are using a web browser to access the API and you have an authenticated CRITs session already, you do not have to provide authentication information to utilize the API. To provide authentication information, append the following to your requests:
&username=<username>&api_key=<api_key>
Where <username> is your username, and <api_key> is the API key you wish to use.
The URL structure for the API comes in this form:
/api/<version>/<resource>/...
The <version> comes in the form of v# where # is the API version you are using.
The <resource> is the content you wish to utilize within CRITs. Currently the available resources are:
For example, if you wanted to get a list of campaigns, you would use:
/api/v1/campaigns/
This would return a list of campaigns in JSON format. If you wish to change the format to something else, you would append "?format=<format>" where <format> is the format you want the data returned to you in. We currently support the following formats:
If you wish to get information about a single document, you would use:
/api/v1/campaigns/<object_id>/
If the results of the GET request have a file in GridFS, you can download them by appending "?file=1" on the end. By default the file(s) will be returned to you in raw format. If you wish to adjust which format the files are in when sent to you, you can append "&file_format=<format>" where <format> is one of 'base64', 'zlib', and 'invert'. The result will be a zip file with a password of 'infected' containing all of the files found with your GET request. If you query for just a single document you will still get a zip file with the same password. If there is an issue generating the zip file (whether due to no files being found, or some other error) you will get a non-zip file which contains any issues.
Queries against the API are done via GET requests. If you wish to upload content to the system through the API, you must use a POST.
If you wish to limit the results of your GET request by the value of one or more fields, you can do so by adding more parameters. The format is similar to how you use search operators in the global search box. Here's an example:
/api/v1/samples/?c-campaign.name=Bad Guys&c-filename=foo.txt
You'll notice a couple things here. The first is that there is a "c-" in front of the field name. This tells the API that this parameter should be used as a field to search against to limit your results. In our example, only samples with a Campaign Name of "Bad Guys" AND a filename of "foo.txt" will be returned to us. Finally, in this format the fields are both full matches.
The above assumes the parameters are to be used in an AND query. If you wish to instead use your parameters in an OR query, you can add "or=1" to your parameter list:
/api/v1/samples/?or=1&c-campaign.name=Bad Guys&c-filename=foo.txt
This will return samples with a Campaign Name of "Bad Guys" OR a filename of "foo.txt".
As long as you have a "c-" in front of the parameter, you can search against any field in the database, whether it is a CRITs supported field or not!
If you wish to use regex, you can add "®ex=1". This will convert all "c-" parameters to regex searches (except those with comparison operators which is explained below).
/api/v1/samples/?c-campaign.name=Bad&c-filename=foo®ex=1
This will find all Samples where the filename contains "foo" and the Campaign Name contains "Bad".
If you wish to use the MongoDB comparison operators ('gt', 'gte', 'lt', 'lte', 'in', 'nin'), you can use the syntax "__<operator>" when defining your field. Some examples:
/api/v1/samples/?c-size__lte=100
/api/v1/samples/?c-bucket_list__in=foo,bar
| Note: | Using a comparison operator will override "®ex=1" so none of the fields which use comparison operators will be converted into regex. |
|---|
If you wish to limit the fields in the results of your GET request, you can use two features:
| only: | Only populate these and any required fields. |
|---|---|
| exclude: | Do not populate these fields if they are not required. |
For example:
/api/v1/samples/?only=filename,mimetype,md5
Will only populate those and any required fields for each document. The inclusion of required fields is intentional. The classes expect that these fields are populated if they are required and do not have a default value to set, so if you do not include them they will complain.
You can combine both only and exclude. The result will be all of the fields from only as long as they aren't in the exclude list, combined with any required fields.
cURL:
curl -F<EMAIL_ADDRESS>-F "source=<your source>" http://localhost:1337/api/v1/pcaps/?username=<your username>&api_key=<your api key>
Python:
Adding a Domain
import requestsdata = {'api_key': '<your api key>','username': '<your username>','source': '<source name>','domain': 'www.fakedomain.evil','ip': '<IP_ADDRESS>'}r = requests.post(url, data=data)if r.status_code == 201:print "Successfully added "+params['domain']
Ruby:
In most cases when submitting a POST to add new content to CRITs you will get a response in the following JSON format:
{"return_code": <code>,"type": <type>,"id": <object_id>,"message": <message>,"url": <url>}
The return_code is usually 0 for success, 1 for failure. Some API calls may wish to extend this to include other codes to represent other results. Those return codes should be listed in the appropriate sections below.
In the event a new TLO was created or content was successfully added to an existing TLO, the TLO type and ID will be returned to you. In addition, a URL will be provided which can be used to query the API for the details of that TLO.
If there is a message to give context, whether the request was successful or not, it will also be provided.
In some situations the entire response may not look like this. Refer to the sections below for any special conditions you may need to look out for.
These parameters are frequently used across most top-level objects in CRITs.
| bucket_list: | Comma-separated list of buckets. |
|---|---|
| source: | Name of the source which provided this information. |
| method: | Method in which the information was acquired from the source. |
|---|---|
| reference: | Reference for the source of the information. |
| campaign: | Campaign associated with this information. |
| confidence: | Campaign confidence associated with this information. |
| ticket: | Associated Ticket. |
|---|
GET:
/api/v1/actors/
/api/v1/actors/<object_id>/
POST:
/api/v1/actors/
Unique POST Parameters:
| name: | Name of the Actor. |
|---|---|
| aliases: | Comma-separated list of actor aliases. |
| description: | Description of the Actor. |
GET:
/api/v1/actoridentifiers/
/api/v1/actoridentifiers/<object_id>/
POST:
/api/v1/actoridentifiers/
Unique POST Parameters:
| identifier_type: | |
|---|---|
| Type of the Actor Identifier. | |
| identifier: | Value of the Actor Identifier. |
GET:
/api/v1/backdoors/
/api/v1/backdoors/<object_id>/
POST:
/api/v1/backdoors/
Unique POST Parameters:
| name: | Name of the Backdoor. |
|---|---|
| version: | Version of the Backdoor |
| aliases: | Comma-separated list of backdoor aliases. |
| description: | Description of the Backdoor. |
GET:
/api/v1/campaigns/
/api/v1/campaigns/<object_id>/
POST:
/api/v1/campaigns/
Unique POST Parameters:
| aliases: | Comma-separated list of campaign aliases. |
|---|---|
| description: | Description of the campaign. |
| name: | Name of the campaign. |
GET:
/api/v1/certificates/
/api/v1/certificates/<object_id>/
POST:
/api/v1/certificates/
Unique POST Parameters:
| description: | Description of the certificate. |
|---|---|
| filedata: | The certificate. |
| related_id: | ObjectId of the related top-level object. |
| related_md5: | MD5 of the related top-level object if it has one. |
| related_type: | The CRITs type of the related top-level object. |
| relationship: | The type of relationship. |
POST:
/api/v1/comments/
Unique POST Parameters:
| comment: | The Comment you would like to add. |
|---|---|
| object_id: | The ObjectId of the item to add comment to. |
| object_type: | The Object Type of this object. |
GET:
/api/v1/domains/
/api/v1/domains/<object_id>/
POST:
/api/v1/domains/
Unique POST Parameters:
| add_indicators: | If you wish to add Indicators to the system for this information. |
|---|---|
| add_ip: | Tell the API that you are also adding an IP related to this domain. |
| domain: | The domain name. |
| ip: | The IP you want to relate to this domain. |
| ip_type: | The type of the IP ('IPv4 Address' is most common). |
| ip_source: | The source of the IP. |
| ip_method: | The method in which you acquired this IP from the source. |
| ip_reference: | The reference about this IP source. |
| same_source: | If you want the IP to have the same source as the domain. |
GET:
/api/v1/emails/
/api/v1/emails/<object_id>/
POST:
/api/v1/emails/
Unique POST Parameters:
| upload_type: | One of "eml", "msg", "raw", "yaml", "fields". |
|---|---|
| filedata: | The email in EML, Raw, or YAML format. |
| email_id: | The ObjectId of the email if it is in YAML format and exists already. |
| password: | The password for the attachment if this is an MSG file. |
If you are uploading a type of "fields", you can include these parameters but only "date" is required:
| date: | The Date field. |
|---|---|
| to: | The To field. |
| cc: | The CC field. |
| from_address: | The From field. |
| sender: | The Sender field. |
| subject: | The email subject. |
| reply_to: | The Reply-To field. |
| helo: | The HELO. |
| boundary: | The Boundary. |
| message_id: | The email Message-ID |
| raw_header: | The raw header of the email. |
| raw_body: | The raw body of the email. |
| originating_ip: | The Originating IP field. |
| x_originating_ip: | |
| The X-Originating-IP field. | |
| x_mailer: | The X-Mailer. |
GET:
/api/v1/events/
/api/v1/events/<object_id>/
POST:
/api/v1/events/
Unique POST Parameters:
| description: | Description of the event. |
|---|---|
| event_type: | Type of Event. |
| date: | Date of the event. |
| title: | Title of the event. |
GET:
/api/v1/exploits/
/api/v1/exploits/<object_id>/
POST:
/api/v1/exploits/
Unique POST Parameters:
| name: | Name of the Exploit. |
|---|---|
| cve: | CVE identifier of the Exploit. |
| description: | Description of the Exploit. |
GET:
/api/v1/indicators/
/api/v1/indicators/<object_id>/
POST:
/api/v1/indicators/
Unique POST Parameters:
| add_domain: | Add a Domain to CRITs if this is a domain indicator. |
|---|---|
| add_relationship: | |
| Add a relationship if this is a Domain, IP, etc. | |
| indicator_confidence: | |
| The confidence level of this Indicator. |
| indicator_impact: | |
|---|---|
| The impact level of this Indicator. |
| type: | The type of the Indicator. |
|---|---|
| threat_type: | The threat type of the Indicator. |
| attack_type: | The attack type of the Indicator. |
| value: | Indicator value. |
| description: | A description of the Indicator. |
POST:
/api/v1/indicator_activity/
Unique POST Parameters:
| object_id: | The ObjectId of the Indicator to add activity to. |
|---|---|
| start_date: | The start datetime of the activity. |
| end_date: | The end datetime of the activity. |
| description: | A description of the activity. |
GET:
/api/v1/ips/
/api/v1/ips/<object_id>/
POST:
/api/v1/ips/
Unique POST Parameters:
| add_indicator: | Add this IP as an Indicator. |
|---|---|
| indicator_reference: | |
| Reference for the source of the Indicator. | |
| ip: | IP Address. |
| ip_type: | Type of IP Address. |
GET:
/api/v1/pcaps/
/api/v1/pcaps/<object_id>/
POST:
/api/v1/pcaps/
Unique POST Parameters:
| filedata: | The PCAP. |
|---|---|
| related_id: | ObjectId of the related top-level object. |
| related_md5: | MD5 of the related top-level object if it has one. |
| related_type: | The CRITs type of the related top-level object. |
| relationship: | The type of relationship. |
GET:
/api/v1/raw_data/
/api/v1/raw_data/<object_id>/
POST:
/api/v1/raw_data/
Unique POST Parameters:
| upload_type: | One of "metadata" or "file". |
|---|---|
| copy_relationships: | |
| Copy the relationships of the linked raw data version. |
| data: | The raw data if the upload type is "metadata". |
|---|---|
| description: | Description of the raw data. |
| filedata: | The raw data if the upload type is "file". |
| data_type: | The type of raw data. Must match choices in the database. |
| link_id: | The Link ID of an existing version of this raw data. |
| title: | Title for the raw data. |
| tool_details: | Details about the tool. |
| tool_name: | The tool, utility, or host of the raw data. |
| tool_version: | The version of the tool, utility, or host of the raw data. |
GET:
/api/v1/samples/
/api/v1/samples/<object_id>/
POST:
/api/v1/samples/
Unique POST Parameters:
| upload_type: | One of "metadata" or "file". |
|---|---|
| filename: | The name of the file if this is a "metadata" upload. |
| md5: | The MD5 of the file if this is a "metadata" upload. |
| sha1: | The SHA1 of the file if this is a "metadata" upload. |
| sha256: | The SHA256 of the file if this is a "metadata" upload. |
| size: | The size of the file if this is a "metadata" upload. |
| mimetype: | The mimetype of the file if this is a "metadata" upload. |
| filedata: | The sample if the upload type is "file". |
| password: | The password to unzip the file if it is zipped and the upload type is "file". |
| file_format: | The format of the file if the upload type is "file". |
| related_md5: | The MD5 of the related sample if this was an embedded sample. |
|---|---|
| related_id: | The ObjectId of the related TLO. |
| related_type: | The type of TLO to relate to. |
GET:
/api/v1/screenshots/
/api/v1/screenshots/<object_id>/
POST:
/api/v1/screenshots/
Unique POST Parameters:
| upload_type: | One of "ids" or "screenshot". |
|---|---|
| filedata: | The screenshot if the upload type is "screenshot". |
| screenshot_ids: | A comma-separated list of existing screenshot ObjectIds to add to the top-level object. |
| tags: | A comma-separated list of tags for the screenshot. |
| oid: | The ObjectId of the top-level object the screenshot(s) is/are for. |
| otype: | The type of the top-level object the screenshot(s) is/are for. |
| description: | Description of the screenshot. |
POST:
/api/v1/services/
Unique POST Parameters:
| object_type: | The type of top-level object you are updating. |
|---|---|
| object_id: | The ObjectId to search for. |
| analysis_id: | The ID of the analysis task you want to update. |
| result: | The 'result' contents of your analysis result. |
| result_type: | The 'Type' of your result. |
| result_subtype: | The 'subtype' of your result. |
| result_is_batch: | |
| Set to "1" if you are pushing multiple results. | |
| log_message: | The contents of the log message. |
| log_level: | The level of the log (defaults to 'info'). |
| status: | The status to set the task to when it is finished. |
| finish: | Set to "1" to note that this task is finished and to mark it "complete". |
|---|
If you include the "result" field, you will be required to also provide the "result_type" and "result_subtype". Also, if you include the "log_message" field, "log_level" will be set to "info" if it is not provided.
If you want to submit multiple results at once you have to set "result_is_batch" to "1" and supply result, result_type, and result_subtype as JSON list. Make sure that all three lists have the same length so there is a type and subtype for each result.
GET:
/api/v1/signatures/
/api/v1/signatures/<object_id>/
POST:
/api/v1/signatures/
Unique POST Parameters:
| copy_relationships: | |
|---|---|
| Copy the relationships of the linked signature version. |
| data: | The signature that will be added. |
|---|---|
| description: | Description of the signature. |
| data_type: | The type of signature. Must match choices in the database. |
| link_id: | The Link ID of an existing version of this signature. |
| title: | Title for the signature. |
GET:
/api/v1/targets/
/api/v1/targets/<object_id>/
POST:
/api/v1/targets/
Unique POST Parameters:
| firstname: | Target first name. |
|---|---|
| lastname: | Target last name. |
| division: | The division of an organization the Target is a part of. |
| department: | The department of an organization the Target is a part of. |
| email_address: | The email address of the Target. |
| organization_id: | |
| The ID of the organization if they have one. | |
| title: | The job title of the Target. |
| note: | Notes about the Target. |
Over time we are beginning to expose handler functions to the API allowing you to make modifications to TLOs using them. This requires a PATCH request. We will not document the specific parameters to include as they will change along with the handler they map to. For information on what parameters to include, look at the handlers and provide the appropriate arguments. A couple notes, however:
| id_: | Anywhere you notice an id_ argument to a handler, we provide it for you. |
|---|---|
| type_: | Anywhere you notice a type_ argument to a handler, we provide it for you. |
| user: | Anywhere you notice a "user" argument to a handler, we provide it for you. |
Attempts at providing those values yourself will be dropped and replaced by the values we provide. For example, if you wanted to add releasability to a Sample, you don't need to provide a 'Sample' type nor the ObjectId of the sample since we can determine that from your PATCH request. PATCH requests are submitted to the details URL for a TLO like so:
/api/v1/samples/<object_id>/?action=add_releasability
You would then look at what the "add_releasability" handler requires for arguments, and provide them in your request.
Here is a list of currently exposed handlers:
| action_add: | |
|---|---|
| action_update: | |
| action_remove: | |
| add_object: | |
| add_releasability: | |
| description_update: | |
| forge_relationship: | |
| run_service: | |
| source_add_update: | |
| source_remove: | |
| status_update: | |
| ticket_add: | |
| ticket_update: | |
| ticket_remove: |
| update_actor_tags: | |
|---|---|
| attribute_actor_identifier: | |
| set_identifier_confidence: | |
| remove_attribution: | |
| set_actor_name: | |
| update_actor_aliases: | |
| activity_add: | |
|---|---|
| activity_remove: | |
| activity_update: | |
| ci_update: | |
| set_indicator_attack_type: | |
| set_indicator_threat_type: | |
| update_dependency: | |
|---|---|
| update_max_version: | |
| update_min_version: | |
| update_signature_data: | |
| update_signature_type: | |
| update_title: |


Server to Client
Before anything can happen in a browser, it must first know where to go. There are multiple ways to get somewhere: entering a URL in the address bar, clicking (or tapping) on a link on a page or in another app, or clicking on a favorite. No matter the case, these all result in what’s called a navigation. A navigation is the very first step in any web interaction, as it kicks off a chain reaction of events that culminates in a web page being loaded.


Stratospheric ozone time series trend analysis
This demo reproduces calculation for article: Laine, M., Latva-Pukkila, N., Kyrölä, E., Analyzing time varying trends in stratospheric ozone time series using state space approach, Atmospheric Chemistry and Physics Discussion, 13, pages 20503-20530, 2013. doi:10.5194/acpd-13-20503-2013
First load example data set. Stratospheric ozone observations from two satellite instruments SAGE II and GOMOS. The original satellite observations has been combined and processed to produce averaged zonal data for different altitudes. Here we use monthly avarages between 45 km to 55 km and 40N to 50N for years 1984 to 2012.
load ozonedata.mat % data, label time = data(:,1); % time in years from 1984 to 2012 y = data(:,2); % ozone density [1/cm^3] s = data(:,3); % uncertainty standard deviation for y X = data(:,4:6); % proxies
We scale y for numerical stability.
ys = stdnan(y); yy = y./ys; ss = s./ys;
Prior means for some components of W, the model error matrix.
ym = meannan(yy); % mean observations wtrend = abs(ym)*0.00005; % trend std wseas = abs(ym)*0.015; % seasonal component std w0 = [0 wtrend wseas wseas wseas wseas];
Calculate the DLM smoother solution, do MCMC over some components in the matrix W.
options = struct('trig',2,'mcmc',1,'nsimu',2000,'winds',[0 1 2 2 2 2]); dlm = dlmfit(yy,ss,w0,[],[],X,options);
Sampling these parameters: name start [min,max] N(mu,s^2) w2: -7.48787 [-Inf,Inf] N(-7.48787,1^2) w3: -1.78409 [-Inf,Inf] N(-1.78409,1^2) woptv = 1x0 empty double row vector woptw = 0.00063132 0.22512 woptg = 1x0 empty double row vector
figure(1); dlmplotfit(dlm, time, ys) title(label);xlabel('time');ylabel('average O3 density [cm^{-3}]')
figure(2); dlmplotdiag(dlm, time, ys)
Produce sample from the model states using dlmsmosam. It accounts the posterior uncertainty in W using the MCMC chain in dlm.chain.
nsam = 200; % number of sampled to draw from the posterior
dlm_sample = dlmsmosam(dlm,nsam);
Draw dome sample realizations of the level component over the plot in Figure 2.
figure(1); hold on for i=1:5:nsam plot(time,ys*squeeze(dlm_sample(1,:,i)),'-') end hold off
The next figure shows prior and posterior distributions for standard deviations from the diagonal of model error matrix W.
figure(3); clf mcmcplot(dlm.chain,[],dlm.res,'denspanel',2); subplot(2,1,1);title('prior and posterior for variance parameters');xlabel('parameter w(2,2)') subplot(2,1,2);title('');xlabel('parameter w(3,3)')
Sample trend statistics form DLM sample. We calculate 10 year running trend.
nyear = 10; tsamp = ys*squeeze(dlm_sample(1,:,:)); % sample of levels ysm = mean(tsamp(:)); % their mean ysf = 1/(ysm*nyear)*100; % scale factor to get % change / 10 year t10 = mean((tsamp(nyear*12+1:end,:)-tsamp(1:end-nyear*12,:))')*ysf; % mean trend s10 = std((tsamp(nyear*12+1:end,:)-tsamp(1:end-nyear*12,:))')*ysf; % std in the sample time10 = time(fix(nyear/2)*12+1:end); time10 = time10(1:length(t10)); % time axis for plot
figure(4); clf confband(time10,t10,s10);grid; xlim([time(1),time(end)]); % match axis to other plots title('10 year trend'); ylabel('% change / year')


Volunteer with us!
Volunteering with StarVista is an excellent opportunity to learn more about yourself and receive valuable training while making an important contribution to your Community.
As a non-profit organization, StarVista depends on thousands of hours of volunteer work each year to serve our clients. All volunteer positions receive training and ongoing support from StarVista staff. We ask for a minimum 6 month commitment for most volunteer positions.
Below are several ongoing volunteer opportunities within StarVista. Other volunteer opportunities exist depending on volunteer skills and interest. Please contact us by telephone at<PHONE_NUMBER> or by e-mail at<EMAIL_ADDRESS>for more information, or if you would like to discuss volunteering in a capacity you do not see described below.
Crisis Intervention and Suicide Prevention Telephone Counselors StarVista's Crisis Intervention and Suicide Prevention Center offers counseling, support and referrals to callers 24 hours a day, seven days a week. Crisis Line volunteers may take calls from the Suicide Hotline, the Parent Support Line, and the Drug and Alcohol Helpline. Volunteers take calls from individuals dealing with issues that include: family stress, relationships, suicide, substance abuse, and mental illness. Counselors are fully trained by our professional staff before they volunteer.
Youth Volunteer Peer Counselor Our online chat room is part of a project established by StarVista's Crisis Center to offer support and information to young people through the website www.onyourmind.net. Peer Counselors are responsible for facilitating after-school chat room discussions on mental health-related topics as well as providing support, information, first-stage crisis intervention and referrals to peers through the chat room and website. For information on how to become a peer counselor, please visit www.onyourmind.net.
Be the lifeline for someone who needs help! There are hundreds of people in your area who are struggling with issues in their lives, but don’t feel they have anyone to ask for help. If you are a good listener, have a passion for helping those in need, and can give just four hours a week, you can make a real difference by becoming a volunteer on StarVista’s 24-hour crisis hotline! You must be at least 21, and are asked to commit to a minimum of 4 hours per week for one year; call us today at<PHONE_NUMBER> for more information about how you can help!


CSS: Border, Margin, & PaddingOct 18th
Photo credit: therefromhere / Foter / CC BY-NC-SA
CSS allows us to control the size, shape, placement, and much more of anything in our HTML. Essentially, we can control the visual and design elements of a website. Three important attributes to consider are margin, border, and padding. What do they do? They all seem to be terms that surrounds something, and if that's what you thought, you've already got some grasp of what it can do.
See the blue area in the middle? That's where the content goes, whether it is colored space, text, or even an image. Let's take one step outside of it, here we venture into padding. If we have two blocks of content (let's call each of these a block), padding is the space that surrounds it, but we can't see this space. One more important thing about padding is that it affects our border.
Borders show an outline of our block element, and we can control its color, size, and type of line. The border surrounding this paragraph is shown in the code below:
Margin is like padding, but on the other side of our border. It acts like our second invisible space that can be as big or as small as we want. Oh, and all three of these attributes and be set to 0.
If we ever need to, we can control any of margin, border, or padding in any of the four sides of our block. Here's a snippet of code - kind of redundant to type it out each time, right? We only need to say it once for margin, and it means the same thing here:


It's the end of week three at phase 0! For the past three weeks, I have been struggling on reading materials. There are just too much information and I have to decide what is the most important to read at the moment!Over the past three weeks, I would say my study habit hasn't changed much. I think it's working fine but next, I'm going to reduce my sleeping time so that I can have more study time and get myself ready for the onsite program. Hungry for more...


General support queries. User Guides: https://support.komodoplatform.com/ Support staff: Angelina#6231 gcharang#6833. If you want to ask JL777 a question, use the #ask-jl777 channel.
100 messages
Before 05-Dec-19 12:00 AM
PTYX03-Apr-19 05:15 PM
@LeshAft9 I'm not sure about any issues with non-kmd coins but the chainzilla asset and Komodo coin work great on Magnum when using Ledger(edited)
LeshAft903-Apr-19 05:28 PM
OK. there just wasn't any button (that I could find) to have the ledger nano s device do the Confirm Address operation so you can be sure what the web wallet shows you is true
I haven't tried with KMD though, I'll give it a try at some point
PTYX03-Apr-19 06:02 PM
I'll point the issue you explained to them. Maybe they already fixed it and it's something I don't know about.
CrisF03-Apr-19 10:27 PM
FYI: Hi, back in December I managed to loose some KMD. After all of this time I've finally figured out what I did.
Posting so hopefully others won't make the same mistake, and to make it easier for support if someone comes in with a similar problem.
At the time I was consolidating funds to send. Using z_sendmany and z_mergetoaddress.
On one of the z_mergetoaddresses I put an amount at the end of the command, as I had been doing for z_sendmany.
Unfortunately, in this case, a number at the end of z_mergetoaddress is the miners fee
Not a good idea to rush through things and get complacent!
61c5432c68d6d829a7adbd8f4de8b485c8b5a34869e397090538311c44e3e3f4
Please don't make the same mistake I did!(edited)
Alright03-Apr-19 10:44 PM
@CrisF that tx has a normal tx fee
CrisF03-Apr-19 10:47 PM
Oh, Might have put up the wrong tx? Will check when back. Isn't that the 300kmd miners fee one?
Alright03-Apr-19 10:51 PM
that is 299.9999 being sent to a z address as far as I can tell
ferv04-Apr-19 04:57 AM
Can someone help me, I have my KMD on the blue ledger and has more than 2 months that is not working not updates nothing , what can I donor when this issue will be resolve? Thanks in advance
smk762 - dracocanis ominator04-Apr-19 08:26 AM
@ferv not sure what the exact issue is, but might be worth talking to Ledger support.
To recover your KMD, you can use the seed phrase to import into Agama Native Mode.
Thnaks but there is not seed phrase on ledger and ledger response is that is just not working that their engineeers are working but is not true they must receive help from Komodo Team its been more than 2 months
Initialize your Ledger Blue device to get started. The Ledger Blue will generate new private keys to securely manage your crypto assets.
Note: Restore a configuration to recover the private keys a...
Did you do the bit where is says save your recovery phrase?
Komodo. Contribute to jl777/komodo development by creating an account on GitHub.
БОМБ ОН04-Apr-19 07:42 PM
so blind tyvm @gcharang!!
1
and @gcharang, can you please tell me if coins built on kmd platform all share same prefixes? i'm looking at pirate's source code and everything seems the same there...
My feedback is that there is a YouTube video there with the link to www.ksb.money, but that one is not resolving / redirected
So only works without www
CryptoNinjaa06-Apr-19 06:00 PM
That is their website so would be best reporterd on their discord lol. But i will pass it on also
Jurjen06-Apr-19 06:01 PM
Did you found a link on their site to discord or so? I didn't, only links in the footer to crypto union and komodo. But maybe I did missed it
CryptoNinjaa06-Apr-19 06:03 PM
I was already memebr on their discord, But if you click the ocrypto union logo at bottom it takes you to the ocryptounion main site where there is a discord link
I asked there in #general in which channel to report about KSB and someone over there give me a link of komodo discord
CryptoNinjaa06-Apr-19 06:05 PM
Jurjen06-Apr-19 06:06 PM
Indeed
CryptoNinjaa06-Apr-19 06:08 PM
Speak to @Crabby Paddy
SHossain06-Apr-19 06:54 PM
#øpay
Crabby Paddy06-Apr-19 10:11 PM
@CryptoNinjaa thanks
@Jurjen notes and will pass it on thanks!
Jurjen06-Apr-19 10:34 PM
Thanks @Crabby Paddy@CryptoNinjaa
@Crabby Paddy If you can also pass feedback that it is hard to find contact details? I would suggest to add a link in the footer to discord and a channel for KSB or so Btw is there already one? I like to join if so.
Crabby Paddy06-Apr-19 11:30 PM
@Jurjen ksb is apart of ocryptounion so the discord there would be the place to discuss anything related! There is the ksb assetchain channel which is pretty empty at the moment.
Once dex launches and we start doing the crypto loans it should be updated!
Jurjen06-Apr-19 11:34 PM
@Crabby Paddy Thanks, found it
Terran07-Apr-19 04:53 PM
Hi, I just logged onto my Agama wallet for the first time in like 6 months, and all my KMD is gone. And the wallet says there is no history transactions. It also says it can't connect to a server? Does it show "0" KMD balance because it needs to connect, or I need to update the Agama wallet? OR have I just been straight up robbed
I got a case where the DB::flush_count went over 65535 and a full database resync was needed. Normally the flush_count would overflow after about 455 days in Bitcoin if we were indexing a fully syn...
Lumbi08-Apr-19 04:10 PM
@cipi thanks! that looks to be it (edited)
Exile1311-Apr-19 01:25 AM
hey! im attempting to load KMD onto my system, receiving this error
~/komodo/src$ bash: ./komodod: No such file or directory
ive has success up to "Now you can start komodod daemon to sync with the network"
SSH keys provide a more secure way of logging into a virtual private server with SSH than using a password alone. With SSH keys, users can log into a server without a password. This tutorial explains how to generate, use, and upload an SSH Key Pair.
do i use my public ip in this step "Copy the Public Key"


Film review by Kevin Patterson
STRANGER THAN PARADISE Rating: ***1/2 (out of four) R, 1984 Director: Jim Jarmusch Producer: Sara Driver Screenplay: Jim Jarmusch Starring Cast: John Lurie, Eszter Balint, Richard Edson, Cecilia Stark
Jim Jarmusch has been quoted as defending his often meandering films on the grounds that since life has no plot, there is no reason that film or fiction should either. He's got a point, and I suppose it would be easy to see his 1984 film STRANGER THAN PARADISE simply as an expression of this idea, in that it follows a trio of characters who never really do much of anything.
I've seen three Jarmusch films now (the other two being NIGHT ON EARTH and DEAD MAN), and I think that, aside from his knack for dropping in on characters at uneventful moments of their lives, he also has a talent for writing dialogue between characters who aren't quite communicating. NIGHT ON EARTH was an episodic collection of cab rides in which the driver and passenger(s) were on separate wavelengths in one way or another, and DEAD MAN followed a mild-mannered accountant and a nomadic tribesman who were brought together by a bizarre and dangerous turn of events and who didn't quite know what to make of each other. Characters who would normally nod politely at each other and pass are, in Jarmusch films, forced into extended contact with each other, with the result being an interesting and sometimes amusing form of subtle conflict.
In STRANGER THAN PARADISE, those characters are Willie (John Lurie), a Hungarian immigrant who has lived in New York City for the past ten years; his friend Eddie (Richard Edson); and his cousin Eva (Eszter Balint), who has just recently left Hungary and is on her way to Cleveland to live with her Aunt Lottie (Cecilia Stark). Because her aunt is in the hospital when she arrives, she needs a place to stay for ten days, and ends up at Willie's apartment. Willie is mostly annoyed by her presence, and when they do talk, it's about things like how American football is played and why a TV dinner is called a TV dinner. Eddie shows up and seems to like Eva, but nothing really develops, and then she heads off to Cleveland as planned.
The film jumps ahead to a year later, and Willie and Eddie are bored with their life in New York City. They go to Cleveland on vacation, but spend most of their time doing inconsequential things like playing cards with Aunt Lottie or going to the movies with Eva and her friend from work. They decide to take Eva to with them to Florida, where they almost run out of money from betting on dog races (though Willie wasn't too keen on this in the first place--"I just, uh, don't like the idea of...dog races," he objects at one point). Fortunately Eva comes up with some money at the last minute through an amusing coincidence.
Of course, if I took this premise to a Hollywood producer and pitched it as a script, (s)he would probably look it me as if I'd lost my mind. But what Jarmusch has discovered is that these odd little moments in the lives of ordinary people can be just as entertaining as murder mysteries or alien invasions. The subtle conflicts and personality differences between the three characters, which never even develop into a full-scale argument, are strangely engaging and never boring or repetitive.
Willie and Eddie get along, for example, but their friendship is still pretty shallow, and when they spend hours on end in a car together, it results in humorous moments of conversation like, "Willie, you never told me you were from Hungary." "Yeah, so what?" "Well, I thought you were an American...say, you think Cleveland will look anything like Budapest?" At one point Jarmusch keeps his camera on them for several minutes straight while they do nothing but drink beer and stare at the floor. Eva, whose arrival in the United States is probably the catalyst of this film if it can be said to have one, is also interesting for her calm yet blunt honesty.
It would be wrong to say that STRANGER THAN PARADISE succeeds despite its lack of a plot and its deadpan characters. It succeeds *because* of them, turning what would normally be narrative weaknesses into virtues and showing us that three people sitting around not doing much of anything can be just as much fun to watch as James Bond infiltrating a mountaintop fortress to save the world. It's certainly not overwhelming (nor should it be), but I can think of few other films in which a director managed to get so much out of so little. I can imagine a sequel twenty years in the future, in which Willie, Eddie, and Eva are still just sitting around playing cards, watching TV and generally killing time. And I can also imagine myself first in line to see it.

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


It's like that crazy visual thing when using google hangout to screenshare and the other person is doing the same thing.
Discussing the pros and cons of SQL and NoSQL databases.
Different yet the same. Interesting.
A short class about classes in an object oriented language like Ruby.
All about those crazy data structures and how to use them.
Javascript is gaining in popularity. Why, pros and cons.
It's all about the different positions you can use in CSS.
My three favorite websites and what I think about it.


Hot Restaurant
Hottest Restaurant in the World!
We only have 5 tables!
Hello
Add New Reservation
Table


{% extends "outside.html" %} {% block head -%} {%- endblock %} {% block navbar -%}
Quick Links
Promotions


2 Chronicles 2:2
And Solomon told out threescore and ten thousand men to bear burdens, and fourscore thousand to hew in the mountain, and three thousand and six hundred to oversee them.


{{ message }}
Hover your mouse over me for a few seconds to see my dynamically bound title!
Hover your mouse over me for a few seconds to see my dynamically bound title!
Now you see me
{{ todo.text }}
{{ message }}
Reverse Message
Vue.js WebSocket Tutorial
Send Message


Tutorial: parametric types and functions
This tutorial demonstrates how types and functions can be parameterized to
enable them to work on data of different formats and layouts, e.g., for a
function foo
to work on both u16 and u32 data types, and anywhere in between.
It's recommended that you're familiar with the concepts in the previous tutorial, "float-to-int conversion" before following this tutorial.
Simple parametrics
Consider the simple example of the umax
function
in the DSLX standard library:
pub fn umax<N: u32>(x: uN[N], y: uN[N]) -> uN[N] {
if x > y { x } else { y }
}
Most of this function looks like other DSLX functions you may have seen, except
for the new-style parameter, N
. The declaration of N
inside angle brackets
denotes that N
is a parametric value whose value is a build-time invariant
that will be specified by the caller. In other words, changing regular function
parameters pumps different values through the circuit, while changing parametric
values changes the circuit itself.
Here, N
is used to define the widths of the input and output types. It's plain
to see, then, that specifying N = 16
would calculate the maximum of two 16-bit
numbers, whereas N = 273
would calculate the maximum of two 273-bit numbers.
That being said, the smaller the circuit, the faster, smaller, and lower-power
it will be, so N
should be as small as possible (but no smaller!).
There are two ways invoke a parametric function: the first is to explicitly specify all parametric values, and the second is to rely on the language to infer them:
Explicit specification:
import std
fn foo(a: u32, b: u16) -> u64 {
std::umax<u32:64>(a as u64, b as u64)
}
Here, the user has directly told the language what the values of all parametrics are.
Parametric inference:
import std
fn foo(a: u32, b: u16) -> u64 {
std::umax(a as u64, b as u64)
}
Here, though, the language is able to determine that N
is 64, since that
matches the types of the arguments to umax
, and since both arg types agree.
There may be times where inference isn't possible - for example, when there
exist parametrics that aren't referenced in the argument list:
fn my_parametric_sum<N: u32>(a: u32, b: u32) -> uN[N] {
let a_mod = a as uN[N];
let b_mod = a as uN[N];
a_mod + b_mod
}
To invoke this function, explicit specification is required.
Derived parametrics
It's common, when using parametric types, to need types similar, but not
identical to the parametric type. Consider calculating the unbiased
floating-point exponent (from the previous tutorial): while the biased
exponent was 8 bits wide, the calculated unbiased exponent was 9 bits wide due
to the additional sign bit. In this situation, if EXP_SZ
was 8, then it'd be
handy to also have a SIGNED_EXP_SZ
symbol that was equal to 9. This can be
done as follows:
fn unbias_exponent<EXP_SZ: u32, SIGNED_EXP_SZ: u32 = EXP_SZ + u32:1>(
exp: uN[EXP_SZ]) -> sN[SIGNED_EXP_SZ] {
exp as sN[SIGNED_EXP_SZ] - sN[SIGNED_EXP_SZ]:???
}
Oh no! Specifying parametrics in this way has revealed a problem! If we parameterize types, then in some situations, we'll need to also parameterize values!
Of course, we'd not be writing this tutorial if that wasn't possible. DSLX
supports "constexpr"-style evaluation, whereby constant expressions can be
evaluated at interpretation or compilation time. In this case, we just need an
expression that can calculate the correct bias adjustment: (sN[SIGNED_EXP_SZ]:1
<< (EXP_SZ - u32:1)) - sN[SIGNED_EXP_SZ]:1
This is a bit unwieldy in practice, so we can wrap it in a function:
fn bias_scaler<N: u32, WIDE_N: u32 = {N + u32:1}>() -> sN[WIDE_N] {
(sN[WIDE_N]:1 << (N - u32:1)) - sN[WIDE_N]:1
}
fn unbias_exponent<EXP_SZ: u32, SIGNED_EXP_SZ: u32 = {EXP_SZ + u32:1}>(
exp: uN[EXP_SZ]) -> sN[SIGNED_EXP_SZ] {
exp as sN[SIGNED_EXP_SZ] - bias_scaler<EXP_SZ>()
}
Parameterized float-to-int
Finally, consider the 32-bit float-to-int program from the previous tutorial.
That program was restricted to converting from one specific type to another. If,
however, we wanted to convert from, say a double
to an int32_t
, we'd have to
write a new function, even though the basic logic would be the same.
Instead, armed with parametrics, we can write a single function to handle all such conversions - even to floating-point formats we haven't considered!
The first step in such a parameterization is to have a working single-typed example, which we take from the previous codelab:
pub struct float32 {
sign: u1,
bexp: u8,
fraction: u23,
}
fn unbias_exponent(exp: u8) -> s9 {
exp as s9 - s9:127
}
pub fn float_to_int(x: float32) -> s32 {
let exp = unbias_exponent(x.bexp);
// Add the implicit leading one.
// Note that we need to add one bit to the fraction to hold it.
let fraction = u33:1 << 23 | (x.fraction as u33);
// Shift the result to the right if the exponent is less than 23.
let fraction =
if (exp as u8) < u8:23 { fraction >> (u8:23 - (exp as u8)) }
else { fraction };
// Shift the result to the left if the exponent is greater than 23.
let fraction =
if (exp as u8) > u8:23 { fraction << ((exp as u8) - u8:23) }
else { fraction };
let result = fraction as s32;
let result = if x.sign { -result } else { result };
result
}
Next is to identify all types needing parameterization, here being the intended size of the result and the layout of the floating-point type itself; all other types flow from that base definition:
exp:
float32::bexp` size + 1 sign bitfraction:
float32::fraction` size + 1 implicit leading bit
Thus, the struct declaration and function signature will be:
pub struct float<EXP_SZ: u32, FRACTION_SZ: u32> {
sign: u1,
bexp: uN[EXP_SZ],
fraction: uN[FRACTION_SZ],
}
pub fn float_to_int<EXP_SZ: u32, FRACTION_SZ: u32, RESULT_SZ: u32>(
x: float<EXP_SZ, FRACTION_SZ>) -> sN[RESULT_SZ] {
...
}
From there, the rest of the function can be populated by replacing the types in the original implementation with the parameterized ones in the signature:
pub struct float<EXP_SZ: u32, FRACTION_SZ: u32> {
sign: u1,
bexp: uN[EXP_SZ],
fraction: uN[FRACTION_SZ],
}
fn bias_scaler<N: u32, WIDE_N: u32 = {N + u32:1}>() -> sN[WIDE_N] {
(sN[WIDE_N]:1 << (N - u32:1)) - sN[WIDE_N]:1
}
fn unbias_exponent<EXP_SZ: u32, SIGNED_EXP_SZ: u32 = {EXP_SZ + u32:1}>(
exp: uN[EXP_SZ]) -> sN[SIGNED_EXP_SZ] {
exp as sN[SIGNED_EXP_SZ] - bias_scaler<EXP_SZ>()
}
pub fn float_to_int<
EXP_SZ: u32, FRACTION_SZ: u32, RESULT_SZ: u32,
WIDE_EXP_SZ: u32 = {EXP_SZ + u32:1},
WIDE_FRACTION_SZ: u32 = {FRACTION_SZ + u32:1}>(
x: float<EXP_SZ, FRACTION_SZ>) -> sN[RESULT_SZ] {
let exp = unbias_exponent(x.bexp);
let fraction = uN[WIDE_FRACTION_SZ]:1 << FRACTION_SZ |
(x.fraction as uN[WIDE_FRACTION_SZ]);
let fraction =
if (exp as u32) < FRACTION_SZ { fraction >> (FRACTION_SZ - (exp as u32)) }
else { fraction };
let fraction =
if (exp as u32) > FRACTION_SZ { fraction << ((exp as u32) - FRACTION_SZ) }
else { fraction };
let result = fraction as sN[RESULT_SZ];
let result = if x.sign { -result } else { result };
result
}
Note that unbias_exponent()
didn't need type specification, since the type
could be inferred from the argument! (Also note that this implementation doesn't
contain the fixes from the missing cases from the previous tutorial. Exercise to
the reader: apply those fixes here, too!)
This technique underlies all of XLS' floating-point libraries. Common operations are defined in common files, such as apfloat.x (general utilities). Specializations of the above are then available in, e.g., float32.x to hide internal implementation details from end users.
With this technique, you can write single implementations of functionality that
can be applicable across all sorts of hardware configurations for minimal
additional cost. Try it out! Create an 0xbeef
-bit wide floating-point adder!


subarray_fill(a, start, end, obj)
Set the elements of the array a
, beginning with index start
(inclusive) and ending
with index end
(exclusive) to the object obj
.
Return void
.
let a = #[1, 2, 3, 4, 5]
subarray_fill(a, 2, 4, 'x)
a
// #[1, 2, x, x, 5]


Daunte Wright
What Happened to Daunte Wright?
Daunte Wright's child's face blurred due to safety concerns.


Area Tree using 'jsTree' (a plugin for 'jQuery')
Choose Hierarchy:
2011 Parliamentary Constituencies
2011 Administrative Hierarchy
2011 Statistical Hierarchy
2011 Census Merged Local Authorities
2011 Census Merged Wards
Choose Language:
English
Welsh
Area Tree


Nigerian Hollywood actor John Boyega speaks on movie Stars Wars
- Nigerian Hollywood actor John Boyega has shared some juicy details about his upcoming film Star Wars: The Rise Of Skywalker
- While joining in on Tonight Show With Jimmy Fallon on November 27, Boyega revealed some things that won't be heard in the movie
- Reports state that the movie is expected to earn as much as $200 million (N72.5 billion)
Nigerian Hollywood actor John Boyega stopped by The Tonight Show With Jimmy Fallon on Wednesday, November 27, to talk about his upcoming film Star Wars: The Rise Of Skywalker but he wasn't allowed to reveal any spoilers.
Rather the 27-year-old actor shared some of the 'Things You Won't Hear in Star Wars.' According to reports, the film Star Wars: The Rise Of Skywalker is expected to earn as much as $200 million (N72.5 billion) at the opening weekend at box office and fans of Star Wars are gearing up for the latest edition of the movie.
BBNaija 2019 star Tacha joins Mercy to bag endorsement with luxury hair brand (photo)
It was gathered that The Star Wars franchise has spawned multiple films and cartoons. The franchise started with a film trilogy set in medias res—beginning in the middle of the story—which was later expanded to a trilogy of trilogies.
The original trilogy was released between 1977 and 1983, the prequel trilogy between 1999 and 2005, and a sequel trilogy began in 2015, and will end in 2019.
As the latest movie is set to be released, many fans are psyched including one of the leading actors, Boyega who keeps hinting on what is to be expected.
Meanwhile, Legit.ng earlier shared a collection of the funniest, cutest and most memorable lines that either the Star Wars canon or its fandom brought us.
The Star Wars franchise has a lot of devoted fans all over the world who know everything about the fantastic universe and characters.
Whether you are the biggest admirer of the saga or a person who only know the basics about it, you will appreciate these amazing Star Wars puns, jokes and pick up lines.
Don Jazzy unveils huge Mavin studios headquarters as he celebrates 37th birthday (photos, video)
PAY ATTENTION: Read best news on Nigeria's #1 news app
Do you have news to share? Contact Legit.ng instantly
The Most Expected Movies Of This Month on Legit TV:


For nearly two years, I have had quite a fascination with solanacious plants. I read every thing I could find on Daturas, Brugmansias, Nightshade, and the like. I had experimented with small doses of Brugmansia, and smaller still of Datura to little effect-a dry throat and tired, dilated pupils.
I finally decided to really give it a try, and ate about one hundred seeds, about 20 on the hour and then 40 or so at once. I also smoked about a dozen. I then ate 2 Datura leaves and 2 Brugmansia leaves.
I noticed very little until I decided to go to bed at about 11:30.
After a while of not sleeping as sometimes I get very bad insomnia, I decided to read a book. I sat up in bed and began to read some readily available story. I can't now recall what it was about, but I found it very interesting. Ironicly, I was reminded of a Datura report here at erowid called The Infinity Book. I then looked away from the book and looked back and there was nothing there except my hands, palms up as if holding a book.
'wow' I thought 'that was one nifty hallucination'. I didn't feel at all high at this time, no confusion or delerium. I continued to lay in bed as people I know streamed through my door one at at time. They would either face away from me when I tried to converse with them, or just stare blankly at me and smile or giggle once in a while.
A close friend of mine walked in a one point and stared at me coldly while I asked her how she was that night (for some reason I would always try to start small talk with these people even though I sort of knew they werent really there)she then preceded to crawl up ontu my desk and assume a fetal possition for saveral minutes before dissapearing.
One thing that happend throughout the experience was my trying to grab things that weren't there. I would be thirsty and reach for a water bottle only to have my hand go right through it. I would try to adjust my pillow or retrieve a blanket but my hand would slide right through them, it became really irritating.
Several other strange things happened that night such as seeing what looked like hundreds of large black rodents scurrying around my floor and watching a television that I found to not be on (similar to the book thing).
All-in-all it was a very nice experience. Very strange but sort of comforting and not at all scary.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


This is Mat, the creator of this extension. As you may know, I've been working on Nook for a couple of years now, and I've never tried to monetize it or make any money from it.
Last August, I was laid off from my job and I've been surviving off unemployment since then. Lately, the costs for hosting Nook's music files have been getting higher and higher, and I'm no longer able to host these files without support.
This announcement will only show one time, and the first tier of the Patreon is $1. If you're interested in helping me offset the costs of this extension, I would be forever thankful.


The code below is based on SVGPan Library 1.2 and was modified for doxygen to support both zooming and panning via the mouse and via embedded bottons.
This code is licensed under the following BSD license:
Copyright 2009-2010 Andrea Leofreddi a.leo.nosp@m.fred.nosp@m.di@it.nosp<EMAIL_ADDRESS>All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Andrea Leofreddi.


“Tonight while I was in Missouri, Antifa scumbags came to our place in DC and threatened my wife and newborn daughter, who can’t travel. They screamed threats, vandalized, and tried to pound open our door. Let me be clear: My family & I will not be intimidated by leftwing violence,”
Thank God your wife & daughter are safe. ❤🙏 Sorry you have to deal with the SCUMBAG ANTIFA TERRORIST ORGANIZATION & their threats. You can thank your democrat colleagues & CHINA!
Make no mistake about it; if ANYONE, including ANTIFA or BLM terrorists, attack, threaten, bully, intimidate, hurt, punch, destroy, any of my loved ones, my property or myself, I will DEFEND myself, my loved ones and my property from the assailants.
@Jessyriley1994 They said he burned a BLM banner in December. So destruction of property. They also reported he had two magazines of bullets in his suitcase. It is being reported by some that the magazines were planted by the feds so they could get him on a weapons charge as well. Hard to discern what details are true.
@ashiningcityonahill Well I could them trying set him up... and I wonder why antifa and blm never get charged with anything when they beat people up and steal their trump and American flags lol the double standards in this country are out of control
@Jessyriley1994 Exactly! Unfortunately, the democrats are in the seat of power in the places that these things occur. That is why 4 proud boys could be stabbed by antifa and the prosecutor refused to bring charges.
If ANTIFA and BLM did not become militant groups, the Proud Boys wouldn't exist. You seem pretty intelligent on other topics, but you should think about this opinion a bit more.
“Tonight while I was in Missouri, Antifa scumbags came to our place in DC and threatened my wife and newborn daughter, who can’t travel. They screamed threats, vandalized, and tried to pound open our door. Let me be clear: My family & I will not be intimidated by leftwing violence,”
Is he not free
Agree!
#freeenrique
The founder!!
Hell yeah 🤘
Targeted harassment against Enrique shows how desperate and how low the left really is..
He is still detained?!?
Great photo!
Voter fraud already occurring in ga senate race. Check out my page.
What can we do to help?
Beautiful picture 🇺🇲
She’s a beauty.

Great pic
I must admit Laura, I wish I was friends with all of your friends. You make me Proud!


{% extends "apostello/base.html" %} {% block content %}
Your account has not yet been approved.
All new accounts require approval to help prevent abuse. Someone should approve your account soon.
Please get in touch if you believe you are seeing this in error.
{% endblock %}


Hover over a state to see the yearly change.
This chart shows the state breakdown of yearly numeric change in resident total population. Each year's data covers the previous year's 7/1 to the current year's 7/1. Except 2010 covers 4/1 to 7/1 of the current year.
Data source: United States Census Bureau